mysql插入一条数据之后(ID为自动增长列),返回该条数据的ID
如题,最好插入和返回不存在时间差。即:不选择先INSERT然后再SELECT,有无根据mysql机制,直接插入的同时返回。在线等解!!!!求教了~...
如题,最好插入和返回不存在时间差。即:不选择先INSERT然后再SELECT,有无根据mysql机制,直接插入的同时返回。
在线等解!!!!求教了~ 展开
在线等解!!!!求教了~ 展开
1个回答
展开全部
使用下面的查询语句可以返回你需要的ID:
SELECT LAST_INSERT_ID()
说明,即使是在并行的时候,多个程序都在插入,仍然能获得自己的ID,因为每个连接的会话号是不同的。
可以直接返回这个数到程序里面处理,也可以直接作为插入关联表的字段值,例如:
INSERT INTO user(name) VALUES ('xxx');//有自动生成UID
INSERT INTO user_birth(uid,birth) VALUES(LAST_INSERT_ID(), '1972-9-18');//向生日表插入刚才新用户的生日
SELECT LAST_INSERT_ID()
说明,即使是在并行的时候,多个程序都在插入,仍然能获得自己的ID,因为每个连接的会话号是不同的。
可以直接返回这个数到程序里面处理,也可以直接作为插入关联表的字段值,例如:
INSERT INTO user(name) VALUES ('xxx');//有自动生成UID
INSERT INTO user_birth(uid,birth) VALUES(LAST_INSERT_ID(), '1972-9-18');//向生日表插入刚才新用户的生日
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询