Mysql 使用一个触发器更新两个表时出现语法错误
嗨,我正试图用一个触发器更新两个不同的表,但我一直得到语法错误,我不确定我做错了什么 1064-您的SQL语法有错误;检查与您的MySQL服务器版本对应的手册,以了解要使用的正确语法 近“更新特价” 连接特殊对象 在第2行的s.id=o.s'上 如果我只更新一个表,触发器工作正常,但我不能将它们都放在一个触发器中 这是我的扳机Mysql 使用一个触发器更新两个表时出现语法错误,mysql,triggers,Mysql,Triggers,嗨,我正试图用一个触发器更新两个不同的表,但我一直得到语法错误,我不确定我做错了什么 1064-您的SQL语法有错误;检查与您的MySQL服务器版本对应的手册,以了解要使用的正确语法 近“更新特价” 连接特殊对象 在第2行的s.id=o.s'上 如果我只更新一个表,触发器工作正常,但我不能将它们都放在一个触发器中 这是我的扳机 DELIMITER $$ CREATE TRIGGER after_user_type_or_status_change AFTER UPDATE ON
DELIMITER $$
CREATE TRIGGER after_user_type_or_status_change
AFTER UPDATE
ON users
FOR EACH ROW
BEGIN
UPDATE stats s
SET
ee_counter =
CASE
WHEN NEW.type= 1 THEN ee_counter + 1
WHEN NEW.type= 3 && OLD.type = 2 THEN ee_counter + 1
WHEN OLD.type= 1 && NEW.type != 3 THEN ee_counter - 1
ELSE ee_counter
END ,
er_counter =
CASE
WHEN NEW.type= 2 THEN er_counter + 1
WHEN NEW.type= 3 && OLD.type = 1 THEN er_counter + 1
WHEN OLD.type= 2 && NEW.type != 3 THEN er_counter - 1
ELSE er_counter
END
WHERE
s.id = 1;
END $$
BEGIN
UPDATE specialitys sp
JOIN speciality_objects o
ON sp.id = o.speciality_id
JOIN users u
ON o.user_id = u.id
SET
counter =
CASE
WHEN NEW.status = 1 THEN counter + 1
ELSE counter
END
WHERE
sp.id = o.speciality_id ;
END $$
DELIMITER ;
中间的$$结束触发器定义。将其卸下,然后开始以下操作