0

我正在尝试创建一个触发器,该触发器根据同一插入上foo的字段值将字段填充到“set_to_1”或“set_to_2” 。bar我回来了错误:

错误 1442 (HY000):无法更新存储函数/触发器中的表“my_table”,因为它已被调用此存储函数/触发器的语句使用。

我对此错误进行了一些研究,我发现的所有解决方案都指向原始语句NEW.field_name在检查/更新插入字段名称时未指定的问题。我相信我已经在这样做了。

我查看的其他问题/答案位于这两个链接中,但这些似乎表明我做得正确。

mysql'插入后'触发器以根据其他字段计算字段

http://crazytoon.com/2008/03/03/mysql-error-1442-hy000-cant-update-table-t1-in-stored-functiontrigger-because-it-is-already-used-by-statement- which-invoked-this-stored-functiontrigger/

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;

结尾

4

0 回答 0