0

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

1 に答える 1

1

そのようなトリガー定義を持つことはできません:

また、トリガー定義では、トリガーを起動する必要があるかどうかをテストするブール値の WHEN 条件を指定できます。行レベルのトリガーでは、WHEN 条件で行の列の古い値や新しい値を調べることができます。ステートメント レベルのトリガーにも WHEN 条件を含めることができますが、条件はテーブル内の値を参照できないため、この機能はあまり役に立ちません。

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

于 2012-12-30T09:22:41.260 に答える