如何在两个表

时间:2017-11-14 11:40:24

标签: sql oracle plsql

我有两个现有的表,并且已经添加了许多记录。

formula(formulaId,formulaName,formulaType)
and formula_detail(detailId,formulaId,fieldType,value)

现在公式表发生了变化,正在添加新列,branchId为

formula(formulaId,formulaName,formulaType,branchId),

and branch table is branch(branchId,branchName)

我想复制并粘贴每个分支的公式表中的每个现有记录。 例如,如果公式表(ID为1,2,3)和2个分支中有3个现有记录。然后复制粘贴操作应在公式表中生成总新(3 * 2)= 6条记录,并在每个新创建的公式中复制formula_detail表中的记录,如下所示

表示formulaId 1,如果formula_detail表中有5条记录,那么form form_detail表中的复制粘贴将在formual_detail表中添加(2 * 5)个新记录。

我尝试了一些解决方案,但是数量很大,脚本需要时间。请帮忙。如果需要我可以添加的任何测试代码。

1 个答案:

答案 0 :(得分:0)

首先,在详细信息表中复制相同的列是针对数据模型中使用的规范化表单。

仍然如果你想要添加列,

  • 使用formula_detail表中的ALTER语句添加列
  • 尝试使用此Merge语句

    MERGE INTO formula_detail fd USING (SELECT formulaId, branchId from Formula) temp ON (fd.formulaId=temp.formulaId) WHEN MATCHED THEN UPDATE SET fd.branchId=temp.branchId;