谁能告诉我为什么这不起作用?
select *
from keyword_groups_list
where group_id = (insert into keyword_groups_list(group_name, keyword_tool_id)
values('title', 86574551) returning group_id);
我在 PostgreSQL 中遇到错误:
ERROR: Syntax error at or near "into"
LINE 1: ...from keyword_groups_list where group_id = (insert into keywo...
最佳答案
我完全不明白您为什么需要选择。只需使用 returning *
即可获取新插入行的所有列:
insert into keyword_groups_list(group_name, keyword_tool_id)
values ('title', 86574551)
returning *;
话虽如此,但如果您确实需要选择,您可以使用 CTE 执行此操作:
with new_groups as (
insert into keyword_groups_list(group_name, keyword_tool_id)
values ('title', 86574551)
returning group_id
)
select *
from keyword_groups_list
where group_id in (select group_id from new_groups);
但我想不出有什么理由比简单的 returning *
更喜欢它;
关于sql - 在 PostgreSQL 中的 SELECT SQL 语句中插入 SQL 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52227714/