首页 文章

将数据从一个表复制到一个新表,这是所有外键

提问于
浏览
-1

我有一张超过五十行和四列的表 .

列可以称为col1,col2,col3和col4 .

此主表中的每列都是varchar2,并且存在冗余数据 .

我正在转换这个表来代替所有外键 . 因此,我为每列创建了4个表 . Col1_Table,Col2_Table,Col3_Table和Col4_Table . 最后是一个新的主表,它与原始主表类似,只是代替varchar2s . 我正在使用数字并创建了外键约束 .

表格如下:

--OriginalMasterTable

Col1 VarChar2

Col2 VarChar2

Col3 VarChar2

Col4 VarChar2




--Col1_Table, Col2_Table, Col3_Table, Col4_Table

ID - Number

Name - VarChar2

--NewMasterTable

Col1_ID Number

Col2_ID Number

Col3_ID Number

Col4_ID Number

col1,2,3和4表具有来自原始主表的原始数据和新ID .

我想将原始主表复制到新的主表中,而是使用col1,2,3和4表中的外键 .

我将如何使用SQL或PL / SQL进行此操作?

1 回答

  • 2

    您可以使用连接,但在字符字段上 . 假设已定义所有字段,则可以使用内部联接:

    select c1.id as col1_id, c2.id as col2_id, c3.id as col3_id, c4.id as col4_id
    from originalmastertable omt join
         col1_table c1
         on omt.col1 = c1.name join
         col2_table c2
         on omt.col2 = c2.name join
         col3_table c3
         on omt_col3 = c3.name join
         col4_rable c4
         on omt_col4 = c4.name;
    

    然后,您可以将结果放入新表中 .

相关问题