如何高效的获取mysql最后插入数据表中的那条数据的id(该字段自增)?

假设:user表,有一个字段id,设置id为自增,执行一次insert语句,如何高效的获取刚刚插入的数据的id是多少?

原来的解决方案:执行insert之后,再执行一次select,找到刚刚插入的数据,拿到id,有没有可能优化这种方案?

阅读 7.1k
4 个回答

假设楼主用的是世界上最好的语言,那就可以用mysql_insert_id()这个函数

hibernate这些持久化工具都可以save之后获得持久化的对象,里面的id即为刚刚插入之后的id。
如果没有持久层也可以用SQL函数LAST_INSERT_ID()获得刚刚插入的AUTO_INCREACE字段的ID值。必须前一SQL为一INSERT语句,如果是其他语句,返回的ID值为零。

只说mysql的话

SELECT LAST_INSERT_ID();

有些数据库驱动会专门提供方法,比如PDO::lastInsertId

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题