复制存储过程中的主表和详细信息表

时间:2015-08-29 13:43:18

标签: firebird

我有两张表主/详细的DDL是:

表1:

  • tbl1_id整数,
  • tbl1_sm_id整数,
  • tbl1_name varchar(30)

表2:

  • tbl2_id整数,
  • tbl1_id整数,
  • tbl2_name varchar(30)

table2.tbl1_id是两个表之间的外键,tbl1_id和tbl2_id是从触发器自动生成的。

我需要将tbl1_sm_id = 2这两个表中的所有记录复制到tbl1_sm_id = 3的新值中。

我在存储过程中尝试了这个SQL:

For
   select tbl1_id from table1
   where tbl1_sm_id = 2
   into :v_tbl1_id
 do begin
   insert into table1 (tbl1_sm_id, tbl1_name)
   select 3, tbl1_name returning tbl1_id into :v_tbl1_id;

   insert into table2 (tbl1_id, tbl2_name)
   select :v_tbl1_id, tbl2_name
   from table2 where tbl1_id = :v_tbl1_id;

 end

这是对的吗?还有另一种方法来复制这两个表吗?

0 个答案:

没有答案