SQL 第 2 行的语法错误

SQL syntax error at line 2

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

正在尝试创建一个触发器来更新 PY5Q1,其中 id=1 in pmtct_cascade table 与来自 survey_data table 的 p1q5 列之和 有帮助吗?

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

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 ;

否则数据库将在第一个 ; 处终止您的语句,这会使它不完整。

而且您的子查询也不完整。

试试这个

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