Roc*_*nja 3 postgresql cte postgresql-9.3 bulk-insert
我有两个表可以执行一些批量插入:
第一INSERT
:
values_data = "($$key_1$$), ($$key_2$$)"
INSERT INTO key (key_name) VALUES values_data
Run Code Online (Sandbox Code Playgroud)
秒INSERT
:
values_data = "(1, `the id of the first value inserted in key`)
, (1, `the id of the sec value inserted in key`)"
INSERT INTO related_key (related_key_id, key_id) VALUES values_data
Run Code Online (Sandbox Code Playgroud)
我不知道如何做第二个,INSERT
因为我不知道如何为插入到key
表中的行获取这些 id 。
或者有没有更好的方法来做到这一点?
使用数据修改 CTE在单个语句中链接插入。
从你的例子假设你要插入1
的related_key_id
所有行。
WITH ins_key AS (
INSERT INTO key (key_name)
VALUES ($$key_1$$)
, ($$key_2$$)
RETURNING key_id -- return newly generated key_id(s)
)
INSERT INTO related_key (related_key_id, key_id)
SELECT 1, key_id
FROM ins_key;
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3218 次 |
最近记录: |