从MySQL 5.0迁移到5.6我注意到INSERT_LAST_ID()函数在触发器内部使用时表现不同。
我的简化情况:
表A有一个(插入后)触发器:插入table_B(ID)值(LAST_INSERT_ID());
表B有外键:CONSTRAINT table_B FOREIGN KEY(ID)REFERENCES Table_A(ID)ON DELETE CASCADE ON UPDATE RESTRICT
此触发器 - foreignkey组合在5.0下工作正常。迁移到5.6后,这些触发器还有其他行为。
现在触发器中使用的函数LAST_INSERT_ID()似乎得到0(零),第二次得到Primarykey-1。
我已经在网上搜索了但又没有进一步。
任何帮助都将不胜感激。
答案 0 :(得分:0)
没错,5.0行为与5.1或更高不同。该建议将对触发后触发器应用以下更改:
-- insert into table_B (ID) values(LAST_INSERT_ID());
insert into table_B (ID) values (NEW.ID);