您的位置:首页 > 数据库 > MySQL

MySQL-关于并发下的mysql_insert_id()

2013-11-21 11:36 267 查看
我们在写数据库程序的时候, 经常会需要获取某个表中的最大序号数, 或者刚插入的数据的ID值, 一般情况下获取刚插入的数据的id, 使用select max(id) from table 是可以的, 但在多线程, 高并发的情况下, 就不行了m 开始的时候我想的是使用mysql_insert_id(), 不知道会不会在并发的时候产生影响, 查询了下手册, 也是才发现, 是根据connection来的, 不同用户间不会产生影响, 所以也不用去想先把表锁起来, 插入取得ID值后再解锁, 直接正常插入, 然后取值即可, 同理在命令行下执行select last_insert_id();或者select @@IDENTITY;返回的都是本会话下的上次插入的值, 即使另开一个会话插入一条数据, 在本会话下这两个值也不会变!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: