postgresql - 将刚刚创建的标识值用于 return 新插入的行

postgresql - use just created identity value to return newly inserted row

使用SQL服务器我可以编写以下语句...

create table Person(
    id int identity(1,1),
    name varchar(50)
)

insert into Person(name) values ('John')
select * from Person where id = scope_identity()

在 Postgres 中我可以这样做:

CREATE TABLE public.Person
(
  id serial primary key,
  name character varying(10) NOT NULL
)

INSERT INTO Person(name) VALUES ('Smith', 'John') RETURNING id;

我如何编写一个等效的语句,就像我在 SQL 示例中所做的那样,其中不 return id,而是刚刚插入的整个行?

INSERT INTO Person (name) VALUES ('Smith John'); 
select * from Person where id = currval('person_id_seq'); 

如@cur4so 所述,或者

INSERT INTO Person(name) VALUES ('Smith', 'John') RETURNING *;