0
我在PostgreSQL和MySQL下面的觸發器都有問題。第3行存在錯誤等。應該創建一個觸發器,根據講座的小時數增加教授的薪水。PostgreSQL觸發器來計算薪水
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;
這不是PostgreSQL的語法,檢查手冊,並創建一個觸發器功能做的伎倆。 –
插入Vorlesungen後創建觸發獎金....引用不工作在Postgre上? (vorlesungen.SWS)> 5且總和(Vorlesungen.SWS) - vo_neu.SWS <= 5更新時,每一行由vo_neu.gelesenvon組成的集合professoren.gehalt = Professoren.gehalt * 1.05其中Professoren.PersNr = vo_neu .gelesenvon;使用having子句在postgre下進行分組時,正確的語法如何? – viv1d
我從來沒有見過在WHEN子句中用group/by定義的觸發器。在Oracle中這不合法,我懷疑它在Postgres中是合法的。您試圖實現的邏輯看起來不適合使用觸發器進行處理,這在任何情況下都會導致系統難以調試。它看起來應該在應用程序代碼中進行。 –