vde*_*nne 0 sql postgresql function
这是一个完成标题的例子,这是我的函数的内部(我使用postgresql,但我想这是纯SQL语言)
$$
INSERT INTO foo VALUES (DEFAULT, $1) RETURNING id;
INSERT INTO link_foo_to_bar VALUES (1, <?>);
$$ language SQL;
Run Code Online (Sandbox Code Playgroud)
这里要注意两件事,我返回第一个插入的id,如何捕获它以使用返回的id作为第二个插入的第二个参数标记为<?> ?
您可以使用CTE捕获从第一个插入插入的行:
with firstinsert as (
INSERT INTO foo VALUES (DEFAULT, $1) RETURNING id
)
INSERT INTO link_foo_to_bar
select 1, id
from firstinsert;
Run Code Online (Sandbox Code Playgroud)