2014-09-19 65 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将被插入索引