我是一名长期从事桌面应用程序C++编程的人,新接触SQL。我需要插入一个带有自增字段的表,并使该SQL语句返回自增字段的新值。
类似以下内容:
INSERT INTO Entrys ('Name','Description')
VALUES ('abc','xyz')
SELECT Entrys.EntryID WHERE EntryID=[THE ONE JUST INSERTED!]
对于我这个技术新手,很抱歉。
我是一名长期从事桌面应用程序C++编程的人,新接触SQL。我需要插入一个带有自增字段的表,并使该SQL语句返回自增字段的新值。
类似以下内容:
INSERT INTO Entrys ('Name','Description')
VALUES ('abc','xyz')
SELECT Entrys.EntryID WHERE EntryID=[THE ONE JUST INSERTED!]
对于我这个技术新手,很抱歉。
INSERT INTO Entrys ('Name','Description') VALUES ('abc','xyz');
SELECT SCOPE_IDENTITY()
INSERT INTO Entrys('Name', 'Description')
OUTPUT Inserted.EntryID
VALUES ('abc','xyz')
这将输出新创建的IDENTITY字段值。
LAST_INSERT_ID()
。正如 @marc_s 在 SQL Server 中所说,在 PostgreSQL 中,您可以通过以下方式获得相同的行为:
INSERT INTO Entrys ('Name','Description')
VALUES ('abc','xyz')
RETURNING EntryID;
当你插入多个元组并且想要每行生成的所有ID时,RETURNING也非常有用。