關於MySQL返回插入的自增主鍵的幾種方法

2021-08-07 01:25:34 字數 567 閱讀 1782

本文主要講解一下插入資料之後如何獲取自增主鍵的方法:

1.通過select last_insert_id(),結果如下:

last_insert_id()

2817

這個方法有乙個弊端:如果你在插入資料的時候,別人剛好刪除了你剛刪除的資料,那麼你雖然能獲取到這個主鍵,但是沒有任何意義了

如果此時又有人同時插入一條資料,那麼獲取到的將是別人剛插入進去的那條資料的id

2.通過select max(ruid) from tpm_unitinfo,結果如下

max(ruid)

103

這個方法返回的是查詢的當前表的最大的那個id,也即最後插入的那條記錄的id,不過也會有同樣的問題,所以插入資料的時候要防止併發問題

3.通過select @@identity,結果如下:

@@identity

2817

這個方法和第一種一樣,都是返回系統裡面記錄的最後插入一條資料的id

關於返回自增主鍵的方法,只通過mysql來獲取,我還是了解的太少,用mybatis的話,因為使用的是事務,所以很容易就獲取到了當前插入的資料的id

Mysql Mybatis插入資料返回自增主鍵

新增主機裝置管理資訊 param hostpojo 主機裝置管理資訊 return 結果 override transactional public intaddhost hostpojo hostpojo 查詢主機裝置管理列表 param hostpojo 主機裝置管理 return 主機裝置管理...

T SQL 插入並返回自增ID

sql server 2000中,有三個比較類似的功能 他們分別是 scope identity ident current 和 identity,它們都返回插入到 identity 列中的值。ident current 返回為任何會話和任何作用域中的特定表最後生成的標識值。ident curren...

T SQL 插入並返回自增ID

sql server 2000中,有三個比較類似的功能 他們分別是 scope identity ident current 和 identity,它們都返回插入到 identity 列中的值。ident current 返回為任何會話和任何作用域中的特定表最後生成的標識值。ident curren...