在 Postgres 中,我有一个现有的表:
things
thing_id | 事物名称 | 目的地ID |
---|---|---|
10 | 第 10 件事 | 无效的 |
15 | 第 15 件事 | 无效的 |
对于该表中的每一行,我想将行添加到两个新的相关表中,其中一个具有自动生成的 ID。然后我想更新旧表中的行以指向相关的新行。
期望的结果:
things
thing_id | 事物名称 | 目的地ID |
---|---|---|
10 | 第 10 件事 | 1 |
15 | 第 15 件事 | 2 |
parent_destination
目的地ID |
---|
1 |
2 |
child_destination
目的地ID | 目的地名称 |
---|---|
1 | [目的地]东西10 |
2 | [目的地]东西15 |
我在这里尝试过这样做:https ://www.db-fiddle.com/f/6iyvCT7BYXPHPi2N2HvNor/1
但我不知道如何从result1
.
从和从底层序列中
UPDATE
获取序列 ID和。然后你就有了到表所需的连接,剩下的就很简单了:parent_destination
nextval()
pg_get_serial_sequence()
things
小提琴
有关的:
当我们在一个命令中完成所有这些时,不会违反 FK 约束。看:
我想出了一个办法:
https://www.db-fiddle.com/f/6iyvCT7BYXPHPi2N2HvNor/3