相关疑难解决方法(0)

无法从postgres中的UPDATE RETURNING子句中选择

我将问题与更复杂的查询隔离开来.这里是测试场景

DROP TABLE test; 
CREATE TABLE test (
  id integer,
  description varchar(100)
);

INSERT INTO test(id, description) VALUES (1,'new'); 
INSERT INTO test(id, description) VALUES (2,'new'); 
Run Code Online (Sandbox Code Playgroud)

如果我运行查询:

SELECT * FROM test WHERE id IN (UPDATE test set description='test' RETURNING id)
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

错误:"test"或其附近的语法错误第1行:SELECT*FROM test WHERE id(UPDATE test set description ='test'RE ... ^

*** Fehler ***

错误:"test"或其附近的语法错误SQL状态:42601 Zeichen:37

但是,如果我只运行国家政府

UPDATE test set value='test' RETURNING id
Run Code Online (Sandbox Code Playgroud)

我得到一个2行的结果:

1 2

如果我代表结果,我会有一个查询,如:

SELECT * FROM test WHERE id IN (1,2);
Run Code Online (Sandbox Code Playgroud)

结果:

1;"测试"2;"测试"

为什么我的初始陈述没有得到相同的结果?

sql postgresql

14
推荐指数
3
解决办法
2万
查看次数

标签 统计

postgresql ×1

sql ×1