尝试将数据从单个表cc
移到由外键关联的2个表aa
和bb
中:
Table cc
====
data_a, data_b
Table aa
====
id, data_a
Table bb
====
id, data_b, aa_id
表bb
具有外键aa_id
。我需要在aa
中用cc.data_a
创建一行,并在bb
中用cc.data_b
和新创建的aa.id
创建一行。
这可能吗?如果可以,怎么办?
答案 0 :(得分:1)
这是您想要的吗?
with ar as (
insert into aa (data_a)
select distinct data_a
from cc
returning *
)
insert into bb (data_b, aa_id)
select cc.data_b, ar.id
from cc join
ar
on cc.data_a = ar.data_a;
这假设您已经预先定义了a
b
列的serial
和id
。