《Mysql必讀Mysql中LAST_INSERT_ID()的函數(shù)使用詳解》要點(diǎn):
本文介紹了Mysql必讀Mysql中LAST_INSERT_ID()的函數(shù)使用詳解,希望對您有用。如果有疑問,可以聯(lián)系我們。
最近和Sobin在做一個精品課程的項(xiàng)目,因?yàn)橛玫揭粋€固定的id作為表間關(guān)聯(lián),所以在前一個表插入數(shù)據(jù)后要把插入數(shù)據(jù)生成的自增id傳遞給下一個表.研究了一番決定使用Mysql提供了一個LAST_INSERT_ID()的函數(shù).MYSQL實(shí)例
簡單說來,便是這個函數(shù)將返回插入的那條記錄在表中自增的那個字段的值,一般我們都給那個自增字段命名為ID.這樣就可以返回剛插入的記錄的ID值了.MYSQL實(shí)例
一個簡單的例子:MYSQL實(shí)例
這個函數(shù)是基于connection的,也就是不會被其他客戶端的connection影響到,所以結(jié)果是準(zhǔn)確的.如果使用select max(id) from table,在高密度的插入哀求下,是有可能出問題的,返回錯誤值MYSQL實(shí)例
LAST_INSERT_ID闡明MYSQL實(shí)例
從名字可以看出,LAST_INSERT_ID即為最后插入的ID值,根據(jù)MySQL的官方手冊說明,它有2種使用辦法MYSQL實(shí)例
一是不帶參數(shù):LAST_INSERT_ID(),這種辦法和AUTO_INCREMENT屬性一起使用,當(dāng)往帶有‘AUTO_INCREMENT'屬性字段的表中新增記錄時,LAST_INSERT_ID()即返回該字段的值,大家可試下(我已經(jīng)驗(yàn)證過);
二是帶有表達(dá)式:如上面介紹的LAST_INSERT_ID(value+1),它返回的是表達(dá)式的值,即‘value+1';
##################################
LAST_INSERT_ID() 自動返回最后一個INSERT或 UPDATE 查詢中 AUTO_INCREMENT列設(shè)置的第一個表發(fā)生的值.MYSQL實(shí)例
MySQL的LAST_INSERT_ID的注意事項(xiàng):MYSQL實(shí)例
第一、查詢和插入所使用的Connection對象必需是同一個才可以,否則返回值是不可預(yù)料的.MYSQL實(shí)例
mysql> SELECT LAST_INSERT_ID();MYSQL實(shí)例
??????? -> 100MYSQL實(shí)例
使用這函數(shù)向一個給定Connection對象返回的值是該Connection對象產(chǎn)生對影響AUTO_INCREMENT列的最新語句第一個AUTO_INCREMENT值的.這個值不能被其它Connection對象的影響,即它們產(chǎn)生它們本身的AUTO_INCREMENT值.MYSQL實(shí)例
第二、LAST_INSERT_ID 是與table無關(guān)的,如果向表a插入數(shù)據(jù)后,再向表b插入數(shù)據(jù),LAST_INSERT_ID返回表b中的Id值.MYSQL實(shí)例
第三、 假如你使用一條INSERT語句插入多個行,? LAST_INSERT_ID() 只返回插入的第一行數(shù)據(jù)時發(fā)生的值.其原因是這使依靠其它服務(wù)器復(fù)制同樣的 INSERT語句變得簡單.MYSQL實(shí)例
mysql> INSERT INTO t VALUESMYSQL實(shí)例
??? -> (NULL, ‘Mary'), (NULL, ‘Jane'), (NULL, ‘Lisa');MYSQL實(shí)例
mysql> SELECT * FROM t;MYSQL實(shí)例
| id | name |MYSQL實(shí)例
+―-+――+MYSQL實(shí)例
|? 1 | Bob? |MYSQL實(shí)例
|? 2 | Mary |MYSQL實(shí)例
|? 3 | Jane |MYSQL實(shí)例
|? 4 | Lisa |MYSQL實(shí)例
mysql> SELECT LAST_INSERT_ID(); //這便是我要說明的關(guān)鍵問題.MYSQL實(shí)例
| LAST_INSERT_ID() |MYSQL實(shí)例
|??????????????? 2 |MYSQL實(shí)例
雖然將3 個新行插入 t, 對這些行的第一行發(fā)生的 ID 為 2, 這也是 LAST_INSERT_ID()返回的值.MYSQL實(shí)例
以上所述便是本文的全部內(nèi)容了,希望大家能夠喜歡.MYSQL實(shí)例
請您花一點(diǎn)時間將文章分享給您的朋友或者留下評論.我們將會由衷感激您的支持!MYSQL實(shí)例
《Mysql必讀Mysql中LAST_INSERT_ID()的函數(shù)使用詳解》是否對您有啟發(fā),歡迎查看更多與《Mysql必讀Mysql中LAST_INSERT_ID()的函數(shù)使用詳解》相關(guān)教程,學(xué)精學(xué)透。維易PHP學(xué)院為您提供精彩教程。
轉(zhuǎn)載請注明本頁網(wǎng)址:
http://www.snjht.com/jiaocheng/13917.html