【发布时间】:2019-09-06 17:19:27
【问题描述】:
我有两张桌子(table1 和 table2)。 table2 的 id 是基于 table1 上的 id 的。
当我插入 table1 时,我想获取新创建的行的 id, 并在我克隆行时将其用于 table2,但我似乎无法正确处理。
这是一个成功克隆 TABLE1 但无法克隆 TABLE2 的示例。 表 1:
id | date | status |
----+-------------------------+--------+
1 | 2019-09-05 11:51:53.692 | ACTIVE |
2 | 2019-09-05 11:52:49.32 | ACTIVE |
49 | 2019-09-05 11:51:53.692 | ACTIVE |
50 | 2019-09-05 11:52:49.32 | ACTIVE |
(4 rows)
表 2:
id | card_last_digits | card_name |
----+------------+------------------
1 | 4444 | card1 |
2 | 4444 | card2 |
(2 rows)
SQL:
WITH cloneInsert AS (
INSERT INTO table1 (id, date, status)
SELECT nextval('payment_sequence'), date, 'ACTIVE'
FROM table1
RETURNING id)
INSERT INTO table2 (id, card_last_digits, card_name)
SELECT **cloneInsert.id**, card_last_digits, card_name
FROM table2;
【问题讨论】:
标签: postgresql insert clone common-table-expression