Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/61.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 触发器更新另一个表';柜台_Mysql - Fatal编程技术网

Mysql 触发器更新另一个表';柜台

Mysql 触发器更新另一个表';柜台,mysql,Mysql,似乎无法启动这个触发器。。。我们将非常感谢您的帮助 DROP TRIGGER IF EXISTS trigger_votes; CREATE TRIGGER trigger_votes AFTER INSERT ON votes UPDATE collections SET IF(vote = 1, loves, hates) = IF(vote = 1, loves, hates) + 1 WHERE collections.id = NEW.collection_id; 当一个新的“投票

似乎无法启动这个触发器。。。我们将非常感谢您的帮助

DROP TRIGGER IF EXISTS trigger_votes;

CREATE TRIGGER trigger_votes AFTER INSERT ON votes
UPDATE collections
SET IF(vote = 1, loves, hates) = IF(vote = 1, loves, hates) + 1
WHERE collections.id = NEW.collection_id;

当一个新的“投票”记录在表投票中时,我想增加表集合中包含计数的列“love”或“haves”。投票表有一个名为collection_id的列,它对应于collections表中的一条记录。

#1064-您的SQL语法有错误;查看与MySQL服务器版本对应的手册,了解第2行“更新集合集loves=CASE NEW.vote WHEN 1 THEN loves+1 ELSE loves EN”附近使用的正确语法。在插入投票更新集合集loves=loves+1其中id=NEW.collection\u id;为了解决这个问题,我所做的只是将分隔符$$添加到start,并为每行BEGIN和END包装UPDATE语句;它成功了。#1064-您的SQL语法有一个错误;查看与MySQL服务器版本对应的手册,了解第2行“更新集合集loves=CASE NEW.vote WHEN 1 THEN loves+1 ELSE loves EN”附近使用的正确语法。在插入投票更新集合集loves=loves+1其中id=NEW.collection\u id;为了解决这个问题,我所做的只是将分隔符$$添加到start,并为每行BEGIN和END包装UPDATE语句;它成功了。
DELIMITER $$

CREATE TRIGGER trigger_votes AFTER INSERT ON votes FOR EACH ROW
BEGIN
  UPDATE collections
    SET loves = CASE NEW.vote WHEN 1 THEN loves + 1 ELSE loves END
        ,hates = CASE NEW.vote WHEN 1 THEN hates ELSE hates + 1 END 
    WHERE collections.id = NEW.collection_id;
END $$

DELIMITER ;