如何在一个命令中将自动增量id从一个表插入到另一个表中(使用返回)?

时间:2017-05-08 05:38:54

标签: sql postgresql

我尝试过以下方法:

INSERT INTO second_table(id, somethingelse)
VALUES(
       (INSERT INTO first_table(post_text) VALUES('a text') RETURNING id),
       'abcd123'
    );

我知道如何选择2查询,但我试图通过一次执行这两个插入来避免任何并发问题。上面给出了以下错误:

ERROR:  syntax error at or near "INTO"
LINE 3:         (INSERT INTO first_table(post_text) VALUES('a text...

我在id中插入行时尝试将first_table中的自动递增second_table插入first_table

1 个答案:

答案 0 :(得分:1)

使用data modifying CTE

with first_insert as (
  INSERT INTO first_table(post_text) 
  VALUES('a text') 
  RETURNING id
)
INSERT INTO second_table(id, somethingelse)
select id, 'abcd123'
from first_insert;