2014-09-19 59 views
0

我有一個自動增量索引的數據庫。當我在表格中插入一個新項目時,我不知道索引號。有沒有辦法同時返回我物品的新索引?SQL:插入表並返回新索引?

我可以假設新的索引是= max-index + 1。有沒有一些標準的方法來解決這個問題?

感謝您的幫助。

+4

您使用的是什麼DBMS或數據庫引擎(如MySQL,PostgreSQL,Microsoft SQL Server)?做你想做什麼的方法在它們之間是不同的。 – cynic 2014-09-19 08:49:10

+0

我正在使用MySQL。 – 2014-09-19 09:23:04

回答

1

對於MySQL,你可以使用LAST_INSERT_ID()功能,像這樣:

INSERT INTO tbl (auto,text) VALUES(NULL,'text'); 
SELECT LAST_INSERT_ID(); 
+0

thanx mate。 – 2014-09-19 10:08:42

0

在MSSQL中使用@@IDENTITY。 例如INSERT INTO [TaTAble] (testchamps) VALUES (tesvaleurs); SELECT @@IDENTITY as [index];

+1

...當觸發器執行其他插入操作時不能傳遞預期結果。在這種情況下,您將獲得觸發器創建的行的自動標識。 *如果你想這樣做,至少使用SCOPE_IDENTITY。 *如果*您認爲SQL-Server查看「INSERT ... OUTPUT」以獲得您想要的內容。但是,如果不知道確切的數據庫管理系統,就不能回答這個問題。它的工作原理如下: – 2014-09-19 08:55:55

0

您可以將數據插入後使用SCOPE_IDENTITY()如果您使用MS SQL SERVER

例子:

declare @new_id int 

insert into test_table(col1,col2) values(col1_val,col2_val) 
set @new_id = SCOPE_IDENTITY() 

@new_id將被插入索引