假设:user表,有一个字段id,设置id为自增,执行一次insert语句,如何高效的获取刚刚插入的数据的id是多少?
原来的解决方案:执行insert之后,再执行一次select,找到刚刚插入的数据,拿到id,有没有可能优化这种方案?
学习是最好的投资!
假设楼主用的是世界上最好的语言,那就可以用mysql_insert_id()这个函数
hibernate这些持久化工具都可以save之后获得持久化的对象,里面的id即为刚刚插入之后的id。如果没有持久层也可以用SQL函数LAST_INSERT_ID()获得刚刚插入的AUTO_INCREACE字段的ID值。必须前一SQL为一INSERT语句,如果是其他语句,返回的ID值为零。
https://dev.mysql.com/doc/refman/5.0/en/getting-unique-id.html
看评论
只说mysql的话
SELECT LAST_INSERT_ID();
有些数据库驱动会专门提供方法,比如PDO::lastInsertId
PDO::lastInsertId
假设楼主用的是世界上最好的语言,那就可以用mysql_insert_id()这个函数
hibernate这些持久化工具都可以save之后获得持久化的对象,里面的id即为刚刚插入之后的id。
如果没有持久层也可以用SQL函数LAST_INSERT_ID()获得刚刚插入的AUTO_INCREACE字段的ID值。必须前一SQL为一INSERT语句,如果是其他语句,返回的ID值为零。
https://dev.mysql.com/doc/refman/5.0/en/getting-unique-id.html
看评论
只说mysql的话
有些数据库驱动会专门提供方法,比如
PDO::lastInsertId