postgresql:嵌套插入

May*_*ank 4 postgresql stored-procedures prepared-statement

我有两张桌子.让我们说tblA和tblB.
我需要在tblA中插入一行,并使用返回的id作为值插入tblB中的一列.

我尝试在文档中找到这个,但无法得到它.好吧,是否有可能写一个声明(打算用于准备)

INSERT INTO tblB VALUES 
(DEFAULT, (INSERT INTO tblA (DEFAULT, 'x') RETURNING id), 'y')
Run Code Online (Sandbox Code Playgroud)

就像我们为SELECT做的那样?

或者我应该通过创建存储过程来执行此操作?我不确定我是否可以通过存储过程创建一个准备好的语句.

请指教.

此致,
Mayank

Den*_*rdy 7

你需要等待PostgreSQL 9.1:

with
ids as (
insert ...
returning id
)
insert ...
from ids;
Run Code Online (Sandbox Code Playgroud)

同时,您需要在应用程序中使用plpgsql,临时表或一些额外的逻辑...