我正在开发一个Django应用程序,并创建了一个新表tblA,其中有一个外键链接到tblB的主键。
现在tblB已经有几个条目(因此其中已经有几个主键)。
我想运行一个SQL查询,它将为tblAtblB内的每个主键创建一个新行,并复制相应的外键,并在行中插入tblB中所有其他列的默认值。
我希望我说得够清楚!

最佳答案

你忘了粘贴你的表格结构。。我考虑如下-
特布拉
(
aCol1_PK(主键),
acol2_desc(描述)
)
现在只举两列的例子。
现在是B表
待定
(
bCol1,
bCol2,
bCol3 U FK(外键)
)
现在假设默认值为-
bCol1-“B_Col1_默认值”
bcol2-“B_Col2_默认值”
对于这种情况,如果要从表A中插入表B中不存在的p_键行,可以尝试以下查询-

insert into tblB(col1,col2,col3)
 ( select 'b_col_default_val','b_col_default_val', acol1_pk
     from tbla a
    where a.acol1_pk not in ( select b.bcol3_fk from tblb b))

如果要为表A中的所有主键值插入一行,则-
insert into tblB(col1,col2,col3)
 ( select 'b_col_default_val','b_col_default_val', acol1_pk
     from tbla a )

我希望它能帮助你。。
如果您需要任何澄清,您可以询问/评论。

10-07 14:01