使用来自其他表的主键的所有外键填充表

时间:2012-07-09 20:30:55

标签: mysql sql django oracle bulkinsert

我正在处理Django应用程序并创建了一个新表tblA,它有一个链接到tblB主键的外键。

现在tblB已经有几个条目(因此已有几个主键)。

我想运行一个SQL查询,它将为tblA tblB内的每个主键创建一个新行,并复制相应的外键,并tblB中所有其他列的默认值插入行。

我希望我足够清楚!

1 个答案:

答案 0 :(得分:0)

您忘记粘贴表格结构..我正在考虑如下 -

TBLA ( aCol1_PK(主键), acol2_desc(介绍) )

截至目前,仅举两个例子。

现在表B

TBLB ( bCol1, bCol2, bCol3_FK(外键) )

现在假设你有默认值 -

bCol1 - “B_Col1_default_val” bcol2 - “B_Col2_default_val”

对于这种情况,如果你想从表A中插入p_key的行(表B中没有),你可以尝试下面的查询 -

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中存在的所有主键值插入一行,则< - p>

insert into tblB(col1,col2,col3) 
 ( select 'b_col_default_val','b_col_default_val', acol1_pk 
     from tbla a )

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