2014-04-19 115 views
-1

我需要根據存儲數據的兩個表創建觸發器。SQL觸發器創建

第一個表格屬性是id,trait1,trait2,trait3,trait4,trait5。 第二個表attiributes是id,num_submitted,sum_trait1,sum_trait2,sum_trait3,sum_trait4。

當第一個表中添加了某些東西時,觸發器需要遞增num_submitted,並將每個特徵的值添加到它們各自的總和中。

下面是我目前的,但它編譯有錯誤,不執行。我將不勝感激任何幫助。

CREATE OR REPLACE TRIGGER submit_trigger  
AFTER INSERT OR UPDATE ON Surveydata  
FOR EACH ROW WHEN (surveys.survey_id = inserted.survey_id)  
BEGIN  
UPDATE surveys  
SET surveys.numSubmitted= surveydata.numSubq1mitted++, surveys.sum_q1=  
(surveys.sum_q1+new.q1), 
     surveys.sum_q2= (surveys.sum_q2+new.q2), surveys.sum_q3= (surveys.sum_q3+new.q3), 
     surveys.sum_q4= (surveys.sum_q4+new.q4)  
    WHERE (surveys.survey_id = new.survey_id)  
END;  
+0

請添加你的忽視就行2 缺少表達編譯 – kaskelotti

+0

SQL語句獲取錯誤上遇到「文件結束」上線7 3線 但我認爲這些都是詞幹從它正在修建錯誤。 – Josh

+0

是的,它是Oracle ...通過putty使用sqlplus – Josh

回答

0

下可能會有幫助:

CREATE OR REPLACE TRIGGER submit_trigger  
    AFTER INSERT OR UPDATE ON Surveydata  
    FOR EACH ROW 
BEGIN 
    UPDATE surveys s 
    SET s.numSubmitted = :new.numSubmitted + 1, 
     s.sum_q1 = surveys.sum_q1 + :new.q1, 
     s.sum_q2 = surveys.sum_q2 + :new.q2, 
     s.sum_q3 = surveys.sum_q3 + :new.q3, 
     s.sum_q4 = surveys.sum_q4 + :new.q4 
    WHERE s.survey_id = :new.survey_id; 
END; 

分享和享受。

+0

謝謝我感謝您的幫助。節日快樂! – Josh