Mysql 第2行的SQL语法错误

Mysql 第2行的SQL语法错误,mysql,sql,triggers,Mysql,Sql,Triggers,正在尝试创建一个触发器,用survey_数据表中p1q5列的和更新pmtct_级联表中的PY5Q1,其中id=1 有什么帮助吗?您需要一个不同的分隔符 CREATE TRIGGER `pmtct` AFTER INSERT ON `survey_data` FOR EACH ROW BEGIN UPDATE pmtct_cascade SET PY5Q1=(SELECT SUM(p1q5)) WHERE id=1; END 否则DB将在第一次时终止您的语句这将使其不完整 您的子查询也不完整。试

正在尝试创建一个触发器,用survey_数据表中p1q5列的和更新pmtct_级联表中的PY5Q1,其中id=1
有什么帮助吗?

您需要一个不同的分隔符

CREATE TRIGGER `pmtct` AFTER INSERT ON `survey_data` FOR EACH ROW BEGIN
UPDATE pmtct_cascade SET PY5Q1=(SELECT SUM(p1q5)) WHERE id=1;
END
否则DB将在第一次
时终止您的语句这将使其不完整

您的子查询也不完整。

试试这个

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 ;

这就是我试图更新答案的原因。谢谢你的输入,伙计。你应该为你的代码片段添加一个解释,这样OP就可以学习而不是复制粘贴。
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