我在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;
答案 0 :(得分:1)
你不能有这样的触发器定义:
此外,触发器定义可以指定布尔WHEN条件,将对其进行测试以查看是否应触发触发器。在行级触发器中,WHEN条件可以检查行的列的旧值和/或新值。语句级触发器也可以具有WHEN条件,尽管该功能对它们没有用,因为条件不能引用表中的任何值。
http://www.postgresql.org/docs/9.2/static/sql-createtrigger.html