首页 文章

将带有外键的第三个表中的记录复制到其他表中

提问于
浏览
4

我有三个表: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 为Table1和Table2做了副本,我想在 FOR Select 中复制Table2和Table3记录 . 有更好的解决方案吗?

1 回答

  • 0

    我不认为你真的有自动增加的主键 . 你更有可能使用发电机 . 如果是这样,那么您可以使用这种方式插入数据:

    insert into table1(pk1, fd1)
    select gen_id(g_pk1,1), fd1
    from table2
    

    如果需要,您可以在select查询中使用join或union表 .

    请记住,要正确输出查询以适合insert语句 .

相关问题