Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/rust/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySQL中SQL触发器给出语法错误_Mysql_Database Trigger - Fatal编程技术网

MySQL中SQL触发器给出语法错误

MySQL中SQL触发器给出语法错误,mysql,database-trigger,Mysql,Database Trigger,我收到的错误消息是: 1064-您的SQL语法有错误;查看与您的MySQL服务器版本对应的手册,了解第4行的“total_demos=total_demos+1,其中tbl_stats.area_id=NEW.territory AND NE”附近使用的正确语法 您没有遵循case语句的语法: DROP TRIGGER IF EXISTS demo_inc_when_viewstatus_one ; DELIMITER $$ CREATE TRIGGER demo_inc_when_view

我收到的错误消息是:


1064-您的SQL语法有错误;查看与您的MySQL服务器版本对应的手册,了解第4行的“total_demos=total_demos+1,其中tbl_stats.area_id=NEW.territory AND NE”附近使用的正确语法


您没有遵循case语句的语法:

DROP TRIGGER IF EXISTS demo_inc_when_viewstatus_one ;
DELIMITER $$

CREATE  TRIGGER demo_inc_when_viewstatus_one AFTER UPDATE ON `tbl_ffa_demo`
FOR EACH ROW BEGIN
UPDATE  `tbl_stats` SET open_demos=CASE WHEN NEW.demo_status=1  THEN 
 open_demos+1 , 
  total_demos=total_demos+1    WHERE  tbl_stats.area_id=NEW.territory  AND NEW.view_status=1
END $$
DELIMITER;

您是否只是忽略了告诉实际的错误消息是什么或它是分类的?1064-您的SQL语法有一个错误;查看与您的MySQL服务器版本对应的手册,了解使用“total_demos=total_demos+1”的正确语法,其中tbl_stats.area_id=NEW.territory AND NE”位于第4行是的,但我不知道我在做什么,您的SQL语法有错误;查看MySQL服务器版本对应的手册,了解第6行“END”附近使用的正确语法语法。语法错误我已通过在更新查询后添加Semico来解决,但现在出现了一个错误#1235-此版本的MySQL尚不支持“一个表具有相同操作时间和事件的多个触发器”,我回答了您的问题,你不能期望在一篇文章中解决所有错误!顺便说一句,最后一条错误消息非常明确,它准确地告诉您出了什么问题。请解释并行动起来!
case when <condition> then <true branch> else <false branch> end
...  SET open_demos=CASE WHEN NEW.demo_status=1
     THEN open_demos+1 ELSE open_demos=open_demos END, ...