0

我在 PostgreSQL 和 MySQL 下都遇到了以下触发器的问题。第 3 行有 bug,等等。应该创建一个触发器,根据讲座的时间增加教授的薪水。

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;
4

1 回答 1

1

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

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

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

于 2012-12-30T09:22:41.260 回答