我想检查表行是否存在触发器。如果确实如此,它什么都不做,但如果它不存在则插入一行。
以下是我要修改的当前代码:
BEGIN
IF (NEW.counter >= 100) THEN
// check if a certain row exists in another table, if not, execute the beneath code
INSERT INTO tagCategories (name, counter) VALUES ('unnamed', NEW.counter);
UPDATE tagCategories2tagPairs SET tagCategoryId = LAST_INSERT_ID() WHERE tagPairId = OLD.id;
END IF;
END
有没有关于此的好教程,教你可以使用触发器的所有函数(它们看起来不像php函数)?
答案 0 :(得分:1)
有关触发器允许的行为限制,请参阅:
D.1. Restrictions on Stored Routines, Triggers, and Events
要检查行是否存在并更新它,否则如果行不存在则插入行,您可以使用INSERT INTO ... ON DUPLICATE KEY UPDATE
语句,但在上述链接中提到的触发器限制范围内。