为什么这 SELECT 最近添加的记录不起作用
Why this SELECT of the recent added records doesn't work
我试图 SELECT 刚刚插入的记录,但似乎没有用。
示例:
create table tt_teste (id bigserial, descricao varchar);
with inseridos as (
insert into tt_teste (descricao) values('Test 1') returning id
)
select *
from tt_teste
where id in (select id from inseridos);
我尝试用另一种方式重写,但结果是一样的。
with inseridos as (
insert into tt_teste (descricao) values('Test 2') returning id
)
select *
from inseridos i
join tt_teste t on t.id = i.id;
结果总是空的。即使我将 WHERE 更改为“where 1=1 or id in (select id from inseridos)”,新记录也不会显示。他们出现在接下来的 运行.
我这样做是因为我想 SELECT 并在另一个 table 中插入更多来自 JOIN 的数据,但数据库无法 select 刚刚插入的记录.发现某种并发问题。
你可以做到
with inseridos as (
insert into tt_teste (descricao) values('Test 1') returning id
)
select *
from inseridos;
或者如果您想要刚刚插入的其他字段,则
with inseridos as (
insert into tt_teste (descricao) values('Test 1') returning *
)
select *
from inseridos;
除非您有一些计算值、填充某些字段的触发器或您在问题中没有说明的某些其他自动化,否则应该不会有太多要检索的内容。
我试图 SELECT 刚刚插入的记录,但似乎没有用。
示例:
create table tt_teste (id bigserial, descricao varchar);
with inseridos as (
insert into tt_teste (descricao) values('Test 1') returning id
)
select *
from tt_teste
where id in (select id from inseridos);
我尝试用另一种方式重写,但结果是一样的。
with inseridos as (
insert into tt_teste (descricao) values('Test 2') returning id
)
select *
from inseridos i
join tt_teste t on t.id = i.id;
结果总是空的。即使我将 WHERE 更改为“where 1=1 or id in (select id from inseridos)”,新记录也不会显示。他们出现在接下来的 运行.
我这样做是因为我想 SELECT 并在另一个 table 中插入更多来自 JOIN 的数据,但数据库无法 select 刚刚插入的记录.发现某种并发问题。
你可以做到
with inseridos as (
insert into tt_teste (descricao) values('Test 1') returning id
)
select *
from inseridos;
或者如果您想要刚刚插入的其他字段,则
with inseridos as (
insert into tt_teste (descricao) values('Test 1') returning *
)
select *
from inseridos;
除非您有一些计算值、填充某些字段的触发器或您在问题中没有说明的某些其他自动化,否则应该不会有太多要检索的内容。