我正在尝试创建一个触发器,该触发器根据同一插入上foo
的字段值将字段填充到“set_to_1”或“set_to_2” 。bar
我回来了错误:
错误 1442 (HY000):无法更新存储函数/触发器中的表“my_table”,因为它已被调用此存储函数/触发器的语句使用。
我对此错误进行了一些研究,我发现的所有解决方案都指向原始语句NEW.field_name
在检查/更新插入字段名称时未指定的问题。我相信我已经在这样做了。
我查看的其他问题/答案位于这两个链接中,但这些似乎表明我做得正确。
CREATE
/*[DEFINER = { user | CURRENT_USER }]*/
TRIGGER `compare`.`trigger_before_insert` BEFORE INSERT ON `my_database`.`my_table`
FOR EACH ROW BEGIN
IF NEW.foo IS NULL OR
NEW.foo LIKE ''
THEN
IF (NEW.bar LIKE 'test1'
OR NEW.bar LIKE 'test2')
THEN
SET NEW.foo = 'set_to_1';
ELSE
SET NEW.foo = 'set_to_2';
END IF;
END IF;
结尾