我需要根据存储数据的2个表创建一个触发器。
第一个表属性是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 :(得分: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;
分享并享受。