所以我想更新一個表。我有一個總分,然後它下面有4個分數,這些都是總分的派生屬性。當其他分數中的一個得分改變時,我的觸發器應該更新總分。問題與觸發器和變異
create or replace trigger change_score
after insert or update of assault_score on player_score
for each row
begin
if inserting then
update player_score
set overall_score = overall_score + :new.assault_score;
elsif updating then
update player_score
set overall_score = overall_score + :new.assault_score - :old.assault_score;
end if;
end;
/
這是我的觸發,我已經嘗試過之後,仍然有同樣的錯誤(這是一個第二行),我不知道爲什麼它這樣做,或者什麼問題,任何幫助將不勝感激。
當你說'overall_score'在其下面有4個分數時,你是什麼意思?這意味着「overall_score」在一個表格中,但是隨後有一個子表格,其中有4行單獨的分數被彙總以產生總體分數。但你的觸發器只引用一個表。你是否試圖在'player_score'中維護一個聚合,該聚合還包含來自'player_score'中的其他4行的數據?這絕對是一個有助於測試案例(DDL,DML,預期結果等)的案例。 –
是的,總分和其他4個分數都在同一個表中。總分是這些分數的組合。 – courtney
那麼在表格中有4個單獨的行與不同的個人分數?您是否想將所有4行的'overall_score'設置爲相同的總值? –