2013-09-10 70 views
0

所以我想更新一個表。我有一個總分,然後它下面有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; 
/

這是我的觸發,我已經嘗試過之後,仍然有同樣的錯誤(這是一個第二行),我不知道爲什麼它這樣做,或者什麼問題,任何幫助將不勝感激。

+0

當你說'overall_score'在其下面有4個分數時,你是什麼意思?這意味着「overall_score」在一個表格中,但是隨後有一個子表格,其中有4行單獨的分數被彙總以產生總體分數。但你的觸發器只引用一個表。你是否試圖在'player_score'中維護一個聚合,該聚合還包含來自'player_score'中的其他4行的數據?這絕對是一個有助於測試案例(DDL,DML,預期結果等)的案例。 –

+0

是的,總分和其他4個分數都在同一個表中。總分是這些分數的組合。 – courtney

+0

那麼在表格中有4個單獨的行與不同的個人分數?您是否想將所有4行的'overall_score'設置爲相同的總值? –

回答