第2行的SQL语法错误

时间:2015-02-19 06:55:45

标签: mysql sql triggers

CREATE TRIGGER `pmtct` AFTER INSERT ON `survey_data` FOR EACH ROW BEGIN
UPDATE pmtct_cascade SET PY5Q1=(SELECT SUM(p1q5)) WHERE id=1;
END

尝试在pmtct_cascade表中创建一个更新PY5Q1的触发器,其中id = 1,其中来自survey_data表的列p1q5的总和 有什么帮助吗?

2 个答案:

答案 0 :(得分:0)

您需要一个不同的分隔符。

delimiter |
CREATE TRIGGER `pmtct` AFTER INSERT ON `survey_data` 
FOR EACH ROW 
BEGIN
   UPDATE results 
   SET PY5Q1 = (SELECT SUM(p1q5) from survey) 
   WHERE id = 1;
END
|
delimiter ;

否则,DB将在第一个;处终止您的陈述,这将使其不完整。

你的子查询也不完整。

答案 1 :(得分:0)

试试这个

CREATE TRIGGER `pmtct`AFTER INSERT ON `survey_data` FOR EACH ROW BEGIN UPDATE pmtct_cascade SET PY5Q1=(SELECT SUM(p1q5) FROM survey_data) WHERE id=1;
END