1

我创建了以下表格

教授
-------------------------------------------------- ----
教授编号 | 姓名 | 房间 | 奖金
-------------------------------------------------- ----

演讲
--------------------------------------------------
讲座编号 | 标题 | 学期时间 | 由(教授参考)持有
--------------------------------------------------

我正在使用教授提供奖金(薪水)的每周课程在 postgres 下寻找触发器

也许我可以帮助别人,真的很棒!

甚至可能触发其他应用程序的想法

4

1 回答 1

0

首先,我认为您的奖金应该是另一张表,以便您可以按需汇总。所以这留下了三个表:

CREATE TABLE professor (
   profid serial not null unique,
   ...
);

CREATE TABLE lecture (
   lecture_id serial not null unique,
   professor int not null references professor(profid),
   ...
);

CREATE TABLE prof_bonus (
   lecture_id int references lecture(id),
   profid int references professor (profid),
   bonus_amt numeric not null,
   primary key (lecture_id, profid)
);

CREATE FUNCTION add_bonus() RETURNS TRIGGER LANGUAGE PLPGSQL AS
$$
BEGIN
INSERT INTO prof_bonus (lecture_id, profid, bonus_amt)
VALUES (new.lecture_id, new.profid, 100);
RETURN NEW;
END;
$$;

CREATE TRIGGER add_bonus AFTER INSERT TO lecture FOR EACH ROW 
EXECUTE PROCEDURE add_bonus();
于 2013-04-20T14:33:05.107 回答