在mysql触发器中使用case/if/else时出现语法错误
我在MySQL触发器中使用case语句。 但是在MySQL的触发器中使用case-block/if/else时出现语法错误 使用案例在mysql触发器中使用case/if/else时出现语法错误,mysql,sql,triggers,Mysql,Sql,Triggers,我在MySQL触发器中使用case语句。 但是在MySQL的触发器中使用case-block/if/else时出现语法错误 使用案例 DELIMITER // CREATE DEFINER=`root`@`localhost` TRIGGER `color_changed` AFTER INSERT ON `tb_tickets` FOR EACH ROW BEGIN CASE NEW.program_id WHEN 1 THEN UPD
DELIMITER //
CREATE DEFINER=`root`@`localhost`
TRIGGER `color_changed`
AFTER INSERT ON `tb_tickets`
FOR EACH ROW
BEGIN
CASE NEW.program_id
WHEN 1 THEN
UPDATE tb_sites_1
SET color_status = NEW.status
WHERE site_id = NEW.site_id;
WHEN 2 THEN
UPDATE tb_sites_2
SET color_status = NEW.status
WHERE site_id = NEW.site_id;
WHEN 3 THEN
UPDATE tb_sites_3
SET color_status = NEW.status
WHERE site_id = NEW.site_id;
END
END
DELIMITER ;
CREATE DEFINER=`root`@`localhost`
TRIGGER `color_changed`
AFTER INSERT ON `tb_tickets`
FOR EACH ROW
BEGIN
IF NEW.program_id = 1 THEN
UPDATE tb_sites_1
SET color_status = NEW.status
WHERE site_id = NEW.site_id;
ELSEIF NEW.program_id = 2 THEN
UPDATE tb_sites_2
SET color_status = NEW.status
WHERE site_id = NEW.site_id;
ELSE
UPDATE tb_sites_3
SET color_status = NEW.status
WHERE site_id = NEW.site_id;
END
END;
错误
抱歉,发生了意外错误
使用IF/ELSE
DELIMITER //
CREATE DEFINER=`root`@`localhost`
TRIGGER `color_changed`
AFTER INSERT ON `tb_tickets`
FOR EACH ROW
BEGIN
CASE NEW.program_id
WHEN 1 THEN
UPDATE tb_sites_1
SET color_status = NEW.status
WHERE site_id = NEW.site_id;
WHEN 2 THEN
UPDATE tb_sites_2
SET color_status = NEW.status
WHERE site_id = NEW.site_id;
WHEN 3 THEN
UPDATE tb_sites_3
SET color_status = NEW.status
WHERE site_id = NEW.site_id;
END
END
DELIMITER ;
CREATE DEFINER=`root`@`localhost`
TRIGGER `color_changed`
AFTER INSERT ON `tb_tickets`
FOR EACH ROW
BEGIN
IF NEW.program_id = 1 THEN
UPDATE tb_sites_1
SET color_status = NEW.status
WHERE site_id = NEW.site_id;
ELSEIF NEW.program_id = 2 THEN
UPDATE tb_sites_2
SET color_status = NEW.status
WHERE site_id = NEW.site_id;
ELSE
UPDATE tb_sites_3
SET color_status = NEW.status
WHERE site_id = NEW.site_id;
END
END;
错误
#1064-您的SQL语法有错误;查看与您的MySQL服务器版本对应的手册,以了解第9行的“”附近使用的正确语法。阅读整个注释时,最好始终使用该语法。你错过了最后的机会;和结束//(用于开始)
如果您有任何其他错误,请添加完整错误。语法错误的具体状态是什么?#1064.您的SQL语法有错误;检查与您的MySQL服务器版本相对应的手册,以了解在第10行@EricJ的“”附近使用的正确语法。是否设置分隔符?case语句需要以end case结尾;以及如果声明需要终止,且终止条件为:;与开始匹配的结尾应该以您设置的分隔符终止。请阅读此内容,我面临另一个触发错误,您能帮忙吗