我正在创建一个触发器,如果新插入的行中的字段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 ;
答案 0 :(得分:0)
我认为你的IF语法错误。如果语句应该有THEN和ENDIF关键字。
http://dev.mysql.com/doc/refman/5.0/en/if.html
我在6个月左右没有使用MySQL,所以希望这种语法是正确的:
CREATE TRIGGER mytrigger AFTER INSERT ON tableA
FOR EACH ROW BEGIN
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;
END
答案 1 :(得分:0)
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