在mysql中,使用auto_increment型別的id欄位作為表的主鍵。通常的做法,是通過「select max(id) from tablename」的做法,但是顯然這種做法需要考慮併發的情況,需要在事務中對主表以「x鎖「,待獲得max(id)的值以後,再解鎖。
這種做法需要的步驟比較多,有些麻煩,而且併發性也不好。有沒有更簡單的做法呢?答案之一是通過select last_insert_id()這個操作。乍一看,它和select max(id)很象,但實際上它是執行緒安全的。也就是說它是基於
資料庫連線的,基於資料庫連線是什麼意義呢?舉例說明:
(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
mysql獲取插入id 在mysql中,使用auto increment型別的id欄位作為表的主鍵。通常的做法,是通過 select max id from tablename 的做法,但是顯然這種做法需要考慮併發的情況,需要在事務中對主表以 x鎖 待獲得max id 的值以後,再解鎖。www.2c...
Oracle獲取最新插入的字段值
declare newmas id number begin insert into mu alarm strategy mas id,mas name,mas insert time,mas update time,mas user id values 0,testtt to date 2013 ...