我使用触发器生成id:ug01
,ug02
...我想将它们插入到外键列中,但last_insert_id()
返回0,从而创建错误。如何获得“主键列”中的“last_insert_id”的值。Last_insert_id为字母和数字自动增量列返回0
回答
如MySQL documentation所述,LAST_INSERT_ID()返回一个表示这是用于AUTO_INCREMENT
柱通过了最近执行的INSERT语句影响这样的列设置的第一自动生成的值的BIGINT (64-bit)
值。
在你的情况下,你插入的ID,所以AUTO_INCREMENT
值不会生成,因此LAST_INSERT_ID
返回0
。
交叉检查这个由执行MySql的命令:SELECT LAST_INSERT_ID();
如何获取要插入到外键列中的值,因为它在主键列中 –
或者通过恢复为自动增量来玩安全吗? –
您是否使用UUID()生成的值与触发器? –
- 1. 自动增量字母数字(字母数字++)值在C#.net
- 2. spring jdbctemplate为last_insert_id()返回0
- 3. Mysql自动增量ID或字母数字ID作为外键
- 4. 复合(字母数字)主键和自动增量
- 5. LAST_INSERT_ID()返回多行0?
- 6. SELECT LAST_INSERT_ID()返回间歇0
- 7. Java中的“自动增量”字母表?
- 8. 自动增量字母数字在phpmyadmin mysqlserver
- 9. 连续字母数字的自动增量。 (Python)
- 10. MySQL自动增加加上一列中的字母数字
- 11. 从自动增量数据库字段返回到1
- 12. AES返回字母数字
- 13. 散列函数不仅返回小写字母和数字,还返回符号和大写字母
- 14. 用一串数字和字母自动递增
- 15. 如何自动递增ID号与字母和数字
- 16. 自动增加表格ID与字母和数字的混合
- 17. 如何按字母顺序实现自动增量列值?
- 18. 大写字母和数字不返回自己
- 19. 增量字母数字主键
- 20. mysql过程中的last_insert_id()返回0
- 21. LAST_INSERT_ID在插入查询中返回0
- 22. SQL自动增量id字段添加字母
- 23. 自动递增字母数字字符Id
- 24. NHibernate自动增量字符串列
- 25. SQL INSERT INTO返回自动增量字段
- 26. 将自动增量列修改为全局自动增量列
- 27. 当数字= 0时返回数字
- 28. 自动增量列不会增加mysql表中的数字
- 29. 非典型字母和数字递增
- 30. 自动增量字段
看看这个答案:http://stackoverflow.com/questions/6499389/mysql-getting-last-insert-id-in-a -trigger – Lance
自己生成一个id根本没有意义。此外,'last_insert_id()'返回'auto_increment'字段生成的值。您不能使用'last_insert_id()'来检索您生成的一些随机ID。你应该*总是*使用数字ID。如果您因为任何原因需要其他字符,请将它们保存在另一列中,然后在选择时连接ID和字母部分。这将让你有你的字母数字ID,和MySQL将一起玩,并不会有任何问题引起的一个奇怪的主键。 – Mjh