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 ;