关于 mysql 的 last_insert_id

zachary_OOM 2011-05-22 09:51:00
我用ASP.NET开发了一个网站程序,里面有一个表,主键字段类型是自增长的,并且在添加数据的时候需要获取主键值,我在把网站部署以后发现了一个问题,在不同的机器上通过浏览器访问网站,比如在A机器通过浏览器上执行了插入语句,那么A机器通过last_insert_id能获得新插入数据的主键值,但是在B机器上面,我通过浏览器直接调用last_insert_id,居然也能获得和A机器一样的数值,我的问题如下
1、在整个MYSQL数据库里面的 LAST_INSERT_ID 所获得的数值是否都是一样的,不管有多个客户端,读出来的都是数据库最新插入自增量类型的数值
2、会不会出现这样的情况,我在A机器调用 插入语句的时候,B机器也调用了插入语句,那么我A机器获取的 LAST_INSETT_ID其实是B机器产生的值,而不是A机器产生的数值,如果出现这样的情况,那是肯定会导致程序的业务逻辑错误的。


请高手指点。。。。
...全文
130 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
ACMAIN_CHM 2011-05-22
  • 打赏
  • 举报
回复
如果是在同一个SESSION 中, 则取到的是一个LAST ID, 不同的SESSION中是没有影响的。 如果A,B各用一个不同的SESSION则相互之前并不影响。

但如果A本身的两次连接使用了不同的SESSION则不保证。
rucypli 2011-05-22
  • 打赏
  • 举报
回复

56,677

社区成员

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

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