PostgreSQL触发器计算工资

时间:2012-12-28 20:26:55

标签: postgresql triggers

我在PostgreSQL和MySQL下遇到以下触发器问题。第3行中有错误等。应该创建一个触发器,根据讲座时间增加教授的工资。

create create trigger viellehre after insert on Vorlesungen referencing new as vo_neu foreach row when group by vo_neu.gelesenvon 
having sum(Vorlesungen.SWS) > 5 and 
sum(Vorlesungen.SWS) - vo_neu.SWS <= 5 
update Professoren 
set Professoren.gehalt = Professoren.gehalt * 1.05 
where Professoren.PersNr = vo_neu.gelesenvon;

1 个答案:

答案 0 :(得分:1)

你不能有这样的触发器定义:

此外,触发器定义可以指定布尔WHEN条件,将对其进行测试以查看是否应触发触发器。在行级触发器中,WHEN条件可以检查行的列的旧值和/或新值。语句级触发器也可以具有WHEN条件,尽管该功能对它们没有用,因为条件不能引用表中的任何值。

http://www.postgresql.org/docs/9.2/static/sql-createtrigger.html