我创建了以下表格
professor ------------------------------------------------------ ProfNr | Name | Room | Bonus ------------------------------------------------------ lecture -------------------------------------------------- Lecture No | Title | semester hours | held by (Prof Reference) --------------------------------------------------
我正在寻找postgres下的触发器,使用教授给予奖金的每周课程(薪水)
也许我可以帮助别人,非常棒!
甚至可能触发其他应用的想法
答案 0 :(得分: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();