我正在创建一个触发器,如果新插入行的字段 statuscode
的值为 200,它应该运行 Query 1。但是如果 statuscode
表示 300 改为运行 Query 2。这在 MySQL 中完全可行吗?
我尝试了想到的第一个方法,但显然是错误的。
CREATE TRIGGER mytrigger AFTER INSERT ON tableA
FOR EACH ROW BEGIN
IF(new.statuscode = 200,
(DELETE FROM tableB WHERE new.guid = tableB.guid),
(UPDATE tableB SET is_complete = 0 WHERE new.guid = tableB.guid))
END
//
DELIMITER ;
最佳答案
mysql 过程中 IF/ELSE 的语法是:
IF (NEW.statuscode = 200) THEN
DELETE FROM tableB WHERE new.guid = tableB.guid;
ELSE
UPDATE tableB SET is_complete = 0 WHERE new.guid = tableB.guid;
END IF;
这里是触发器语法的文档: http://dev.mysql.com/doc/refman/5.5/en/if.html
关于MySQL:有条件地根据某个字段运行查询1或查询2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21048258/