将新行数据插入表后如何获取id? [重复]

问题描述 投票:-1回答:2

这个问题在这里已有答案:

我有:

Insert Into(name)
Value('Anton')

我如何获得新创建的id

sql postgresql
2个回答
0
投票

在表分发器中插入一行,返回DEFAULT子句生成的序列号:

INSERT INTO distributors (did, dname) VALUES (DEFAULT, 'XYZ Widgets')
   RETURNING did;

可选的RETURNING子句使INSERT根据实际插入的每一行计算和返回值。这主要用于获取默认提供的值,例如序列号。但是,允许使用表的列的任何表达式。 RETURNING列表的语法与SELECT的输出列表的语法相同。

参考:

  1. https://www.postgresql.org/docs/9.1/static/sql-insert.html
  2. https://stackoverflow.com/a/2944481/7793817

0
投票

您使用RETURNING关键字

https://www.postgresql.org/docs/9.5/static/dml-returning.html

来自doc:

INSERT INTO users (firstname, lastname) VALUES ('Joe', 'Cool') RETURNING id;
© www.soinside.com 2019 - 2024. All rights reserved.