假设: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