如何準確高效的獲取資料庫新插入資料的主鍵id

2022-03-25 21:28:12 字數 756 閱讀 1312

例如我們新建了一張表userinformation,字段如下id,為主鍵,自增,其它欄位name,pwd,email

然後我們來執行乙個新增插入操作:

insert into userinformation

(name,pwd,email) values('小明','123','111')

我們想在新增插入資料的時候獲取到插入這條資料的主鍵的值是多少,

解決的方法有兩種:

1、一種是直接輸入某個字段,然後查詢,**如下:

insert into userinformation

(name,pwd,email) values('小張','123','111')

select @@identity

插入後獲取,但是這種並不是完全準確的

insert into[test1].[dbo].[userinformation]

(name,pwd,email) values('小張','123','111')

select @@identity

涉及到資料庫鎖,如果調整了資料庫鎖,當數量級別特別大,有大量資料併發插入的時候可能會有誤差。

2、另一種方法是在插入的同時進行輸出,**如下:

insert into userinformation

(name,pwd,email) output inserted.id values('小明','123','111')

除了主鍵,也可以輸出別的字段,準確高效。

推薦使用第二種

mysql 如何高效獲取新插入的最後記錄

在mysql中,使用auto increment型別的id欄位作為表的主鍵,並用它作為其他表的外來鍵,形成 主從表結構 這是資料庫設計中常見的用法。但是在具體生成id的時候,我們的操作順序一般是 先在主表中插入記錄,然後獲得自動生成的id,以它為基礎插入從表的記錄。這裡面有個困難,就是插入主表記錄後...

SQL SERVER 獲取新插入資料的 主鍵

scope identity 返回插入到同一作用域中的 identity 列內的最後乙個 identity 值。乙個作用域就是乙個模組 儲存過程 觸發器 函 數或批處理。因此,如果兩個語句處於同乙個儲存過程 函式或批處理中,則它們位於相同的作用域中。identity 返回在當前會話的所有表中生成的最...

獲取資料庫內容 php php如何獲取資料庫內容

php如何獲取資料庫內容 閱讀 68 php獲取資料庫內容怎麼?比如html中有個名為1.2.3的三個 資料庫有三種對應顏色,如何讓每乙個 背景顏色 從資料庫中取值顯示。處理 如 從資料庫根據 id 獲取顏色 function getcolor db,id if result db query se...