mysql獲取插入ID

2021-12-29 22:40:26 字數 612 閱讀 3549

mysql獲取插入id

在mysql中,使用auto_increment型別的id欄位作為表的主鍵。通常的做法,是通過「select max(id) from tablename」的做法,但是顯然這種做法需要考慮併發的情況,需要在事務中對主表以「x鎖「,待獲得max(id)的值以後,再解鎖。  www.2cto.com  

這種做法需要的步驟比較多,有些麻煩,而且併發性也不好。有沒有更簡單的做法呢?答案之一是通過select last_insert_id()這個操作。乍一看,它和select max(id)很象,但實際上它是執行緒安全的。也就是說它是基於資料庫連線的,基於資料庫連線是什麼意義呢?舉例說明:  www.2cto.com  

(1)、在連線1中向a表插入一條記錄,a表包含乙個auto_increment型別的id。

(2)、在連線2中向a表再插入一條記錄。

(3)、結果:在連線1中執行select last_insert_id()得到的結果和連線2中執行select last_insert_id()的結果是不同的;而在兩個連線中執行select max(id)的結果是相同的。

注:使用select last_insert_id()時要注意,當一次插入多條記錄時,只是獲得第一次插入的id值,務必注意!

MySQL 獲取最新插入資料的id

select identity identity 返回為跨所有作用域的當前會話中的某個表生成的最新標識值。插入資料之後,不管是再執行什麼操作 除了插入資料之後的更新 查詢 刪除等 只用該方法查詢到的id,都是最後插入資料對應的id。例如 插入一條id為10,name為 李四 的資料,之後不管是再執行...

mysql 獲取剛插入行id彙總

我們在寫資料庫程式的時候,經常會需要獲取某個表中的最大序號數,一般情況下獲取剛插入的資料的id,使用select max id from table 是可以的。但在多執行緒情況下,就不行了。下面介紹三種方法 1 getgeneratedkeys 方法 程式片斷 connection conn ser...

mysql插入資料,獲取最新插入的ID(自增列)

在mysql中,使用auto increment型別的id欄位作為表的主鍵。通常的做法,是通過 select max id from tablename 的做法,但是顯然這種做法需要考慮併發的情況,需要在事務中對主表以 x鎖 待獲得max id 的值以後,再解鎖。這種做法需要的步驟比較多,有些麻煩,...