我正在尝试根据同一插页上的字段foo
的值,在'插入时将字段bar
填充到'set_to_1'或'set_to_2'。我回来了错误:
错误1442(HY000):无法更新存储的函数/触发器中的表'my_table',因为它已被调用此存储函数/触发器的语句使用。
我对此错误进行了一些研究,我发现的所有解决方案都指出了在检查/更新插入字段名称时原始语句未指定NEW.field_name
的问题。我相信我已经这样做了。
我回顾的其他问题/答案都在这两个链接上,但这些似乎表明我正确地做到了这一点。
mysql 'after insert' trigger to calculate a field based on other fields
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;
END