如何在ID自动增长的情况下取本次插入行的ID

桾楉叁杄 2010-12-20 02:06:16
大概意思就是能把该用户刚刚插入那行的ID取出来,再进行操作,不要取最后一个的,那样如果有多个人插入容易出错。最好详细点,数据库不是特别好,谢谢大家
...全文
55 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
new.id
iihero_ 2010-12-20
  • 打赏
  • 举报
回复
就使用last_insert_id()好了。
ldb2741 2010-12-20
  • 打赏
  • 举报
回复
mysql使用函数last_insert_id() 得到刚插入记录的AUTO_INCREACE字段id
必须前一SQL为一INSERT语句,如果是其他语句,返回的ID值为零

产生的ID 每次连接后保存在服务器中。
这意味着函数向一个给定客户端返回的值是该客户端产生对影响AUTO_INCREMENT列的最新语句第一个 AUTO_INCREMENT值的。这个值不能被其它客户端影响,即使它们产生它们自己的 AUTO_INCREMENT值。这个行为保证了你能够找回自己的 ID 而不用担心其它客户端的活动,而且不需要加锁或处理。

在多用户交替插入数据的情况下max(id)显然不能用。
这就该使用LAST_INSERT_ID了,因为LAST_INSERT_ID是基于Connection的,只要每个线程都使用独立的Connection对象,LAST_INSERT_ID函数将返回该Connection对AUTO_INCREMENT列最新的insert or update*作生成的第一个record的ID。这个值不能被其它客户端(Connection)影响,保证了你能够找回自己的 ID 而不用担心其它客户端的活动,而且不需要加锁。使用单INSERT语句插入多条记录, LAST_INSERT_ID返回一个列表。

56,678

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧