您好,登錄后才能下訂單哦!
本篇文章為大家展示了mysql中LAST_INSERT_ID()的作用是什么,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。
首先看mysql中的LAST_INSERT_ID()的官方說法:
LAST_INSERT_ID()自動返回最后一個INSERT或UPDATE查詢中AUTO_INCREMENT列設置的第一個表發生的值。
MySQL的LAST_INSERT_ID的注意事項:
第一、查詢和插入所使用的Connection對象必須是同一個才可以,否則返回值是不可預料的。
第二、LAST_INSERT_ID是與表無關的,如果向表a插入數據后再向表b插入數據,LAST_INSERT_ID返回表b的Id值。 www.2cto.com
第三、假如你使用一條INSERT語句插入多個行, LAST_INSERT_ID() 只返回插入的第一行數據時產生的值。
第四、假如你使用 INSERT IGNORE而記錄被忽略,則AUTO_INCREMENT 計數器不會增量,而 LAST_INSERT_ID() 返回0, 這反映出沒有插入任何記錄。
根據這四條原則,我們討論的高并發網站訪問時的插入后取自增長值其實主要是跟第一條規則和第二條規則有關。即要保證LAST_INSERT_ID的正確性,必須同一個connection,并且LAST_INSERT_ID要緊跟在insert中執行。所以如果是緩存池公用connection可能會出問題,多線程操作在insert后面由執行了別的insert時也會出問題。
而php的數據庫連接本身是頁面級的,這樣就保證了不會出現緩沖池的情況,然后php頁面執行本身也是單線程的,這樣就保證了順序編寫的LAST_INSERT_ID肯定是緊跟在insert之后執行的,中間不會有別的insert執行。 www.2cto.com
綜上所述,php的頁面級、單線程其實已經保證了的LAST_INSERT_ID天然就是正確的,跟高并發并沒有關系。即php中,mysql的LAST_INSERT_ID總是正確的,隨便用把,沒有問題的。
上述內容就是mysql中LAST_INSERT_ID()的作用是什么,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。