【发布时间】:2015-04-13 21:02:30
【问题描述】:
我在mysql中创建了以下触发器:
DELIMITER $$
CREATE TRIGGER `some_trigger` AFTER INSERT ON db1.table
FOR EACH ROW
BEGIN
IF NEW.userid = 'certain_id' THEN
INSERT INTO db2.table
SET
value1 = NEW.value,
value2 = NEW.value;
END IF;
END $$
DELIMITER ;
如果我删除 if 语句,上述语句有效。此外,将此触发器添加到 db 时不会遇到语法错误。知道 if 语句在添加到 db1.table 时不允许它在 userid 列中插入值为“certain_id”的条目有什么问题吗??
【问题讨论】:
-
它是如何失败的?语法错误、其他错误、意外结果?
-
db1.table.userid的数据类型是什么,你的'certain_id'文字的实际值是什么? -
完全没有错误,只是没有插入值。触发器已成功添加到数据库。 Userid 是通过 uuid 在另一个表中创建的 VARCHAR(255)。我还尝试将变量设置为另一个表中 id 定义的值,但它不起作用,所以我将其删除以缩小问题范围。
-
'certain_id'文字的实际值是多少? -
'4125b2a0-2e43-11e2-b4a4-0022681f4c37'
标签: mysql if-statement triggers sql-insert