2015-12-29 42 views
0

我使用触发器生成id:ug01ug02 ...我想将它们插入到外键列中,但last_insert_id()返回0,从而创建错误。如何获得“主键列”中的“last_insert_id”的值。Last_insert_id为字母和数字自动增量列返回0

+0

看看这个答案:http://stackoverflow.com/questions/6499389/mysql-getting-last-insert-id-in-a -trigger – Lance

+0

自己生成一个id根本没有意义。此外,'last_insert_id()'返回'auto_increment'字段生成的值。您不能使用'last_insert_id()'来检索您生成的一些随机ID。你应该*总是*使用数字ID。如果您因为任何原因需要其他字符,请将它们保存在另一列中,然后在选择时连接ID和字母部分。这将让你有你的字母数字ID,和MySQL将一起玩,并不会有任何问题引起的一个奇怪的主键。 – Mjh

回答

0

MySQL documentation所述,LAST_INSERT_ID()返回一个表示这是用于AUTO_INCREMENT柱通过了最近执行的INSERT语句影响这样的列设置的第一自动生成的值的BIGINT (64-bit)值。

在你的情况下,你插入的ID,所以AUTO_INCREMENT值不会生成,因此LAST_INSERT_ID返回0

交叉检查这个由执行MySql的命令:SELECT LAST_INSERT_ID();

+0

如何获取要插入到外键列中的值,因为它在主键列中 –

+0

或者通过恢复为自动增量来玩安全吗? –

+0

您是否使用UUID()生成的值与触发器? –