使用“before”触发器插入后,MySQL PDO LastInsertID返回错误的值

时间:2012-01-06 23:29:40

标签: mysql lastinsertid

我有一个带有ID(auto_inc),name,...和customer_code字段的customers表。此表还有一个“before”触发器,从另一个表中选择一个客户代码,并在此表中插入新记录之前设置customer_code字段。效果很好。

问题是,当我检索lastInsertID()时,它总是返回1!

我正在使用PDO和PHP。

感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

您使用的是哪个版本的MySQL?从5.0.12开始,触发器不应覆盖最后一个插入ID。但在该版本之前,触发器可能会更改值,后续查询会看到错误的值。

请参阅http://dev.mysql.com/doc/refman/5.0/en/stored-routines-last-insert-id.html