触发器问题 (过节也不能休息,大家帮帮我)
假设有A,B,C 三个表
A表有个触发器 aa 用来将新插入的数据处理后放入B表
B表中也有个触发器 bb 用来将新插入的数据处理后放入C表 并删除A表中触发器以处理的记录
数据的流向 A->B->C 都是通过触发器完成的
删除A表中的记录的语句 无论放在 aa 或则 bb 都会报错
Can't update table 'A' in stored function/trigger because it is already used by statement which invoked this stored function/trigger.
很难理解 bb根本没有去更新或插入记录到A 为什么还会冲突
[解决办法]
因为你的 A 触发了 B (A表有个触发器 aa 用来将新插入的数据处理后放入B表)
,B又触发了 C,(B表中也有个触发器 bb 用来将新插入的数据处理后放入C表)
然后C 又去操作A。(并删除A表中)
形成的循环。
[解决办法]
最终效果是再A中插入数据,然后删除A的数据,
mysql只判断你在处理A的数据,然后又触发回来处理A的数据,如此就是循环
[解决办法]