我有一个触发器设置,每次创建一个新表时,它会读取ID(位于varchar
中)并将其转换为integer
并将其存储在另一列中。
但是当我运行它时遇到以下错误:
Can't update table 'products' in stored function/trigger because it is already used by statement which invoked this stored function/trigger.
这是我的触发器:
CREATE TRIGGER `var_to_int` AFTER INSERT ON `products`
FOR EACH ROW UPDATE `products`
SET `int_id`= CAST(`var_id` AS INT)
WHERE `int_id` IS NULL OR `int_id` = ''
如何防止这种情况?
PHP脚本在表中创建新项目时抛出此错误。
答案 0 :(得分:1)
您无法更新表格本身。 触发器在UPDATE时启动,然后它必须执行UPDATE。形成无限循环。尝试使用附加表来存储临时数据,以便以后更新正确的表