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 *;
使用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 *;