![](/img/trans.png)
[英]SQL: Copy records from child table to parent table, setting foreign key at the same time
[英]Copy records from third table with foreign key to other table
我有三个表:Table1作为master,Table2作为table1的详细信息,Table3作为Table2的详细信息。
TABLE1
PK1 INTEGER,
FD1 VARCHAR(100)
TABLE2
PK2 INTEGER,
FK1 INTEGER,
FD2 VARCHAR(100)
TABLE3
PK3 INTEGER,
FK2 INTEGER,
FD3 VARCHAR(100)
PK1,PK2,PK3分别是table1,table2和table3的自动递增主键,而FK1是PK1的外键,FK2是PK2的外键。
我需要将Table1中的一条记录复制到同一个表中,其中包含Table2和Table3中的所有详细记录。
我已经使用Insert Into...Select...Returning
,我正在考虑将Table2和Table3记录复制到FOR Select
。 有更好的解决方案吗?
我不认为你真的有自动增加的主键。 你更有可能使用发电机。 如果是这样,那么您可以使用这种方式插入数据:
insert into table1(pk1, fd1)
select gen_id(g_pk1,1), fd1
from table2
如果需要,您可以在select查询中使用join或union表。
请记住,要正确输出查询以适合insert语句。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.