我正在创建一个触发器,如果新插入的行中的字段statuscode的值是200,那么它应该运行查询1。但如果statuscode是300,则运行查询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

07-24 09:50
查看更多