将记录从第三个表用外键复制到其他表

将记录从第三个表用外键复制到其他表

本文介绍了将记录从第三个表用外键复制到其他表的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有三个表:Table1作为主表,Table2作为table1的详细信息,table3作为table2的详细信息。

I have three tables: Table1 as master, Table2 as detail for table1 and Table3 as detail for 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的外键。

PK1, PK2, PK3 is auto incremented primary keys for table1, table2 and table3 respectively, while FK1 is a foreign key to PK1 and FK2 is a foreign key to PK2.

我需要将Table1中的一个记录复制到表2和表3中所有详细记录的同一个表中。

I need to copy one record from Table1 to the same table with all its detail records from Table2 and Table3.

我已经复制了对于Table1和Table2使用 Insert Into ...选择...返回并且我想复制中的Table2和Table3记录选择。有没有更好的解决方案?

I already did the copy for Table1 and Table2 using Insert Into...Select...Returning and I am thinking to copy Table2 and Table3 records inside FOR Select. Is there a better solution?

推荐答案

我不认为你真的有自动增量的主键。更可能你使用生成器。如果是这样,那么您可以使用这种方式插入数据:

I don't think that you really have autoincremented primary keys. More likely you use generators. If so then you may use this way of inserting data:

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

如果需要,

请谨记正确输出查询以适合insert语句。

Just keep in mind to have proper output of your query to fit insert statement.

这篇关于将记录从第三个表用外键复制到其他表的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-03 22:17