-1

我想做一个级联副本。我有一个模型,这个模型的规格存储在 4 个表中,一个模型由表中的 MODEL_ID 标识。MODEL 的 MODEL_ID 为主键,MODEL_ID 增加一个新的 MODEL。

如何制作模型的副本?

谢谢。

4

1 回答 1

0

假设您必须复制由 MODEL_ID= 标识的模型,old_model_id首先您必须创建一个新的 MODEL_ID(例如存储在名为 的变量中new_model_id),例如使用序列(SEQ_ID_MODEL在下面的代码中调用,但您可以使用另一种技术来创建新身份证)。

然后,您必须为 4 个表中的每一个编写一个插入命令,检索模型以使用旧 id ( old_model_id) 复制并使用新的 ( ) 进行插入new_model_id

PROCEDURE P_COPY_MODEL
(
  old_model_id  IN NUMBER
)IS

new_model_id number;

begin
    select SEQ_ID_MODEL.nextval into new_model_id from dual;

    insert into table1(MODEL_ID, COLUMN_1, COLUMN_2, ..., COLUMN_N) 
    select (new_model_id, COLUMN_1, COLUMN_2, ..., COLUMN_N)
    from table1 where MODEL_ID = old_model_id;

    insert into table2(MODEL_ID, COLUMN_1, COLUMN_2, ..., COLUMN_M) 
    select (new_model_id, COLUMN_1, COLUMN_2, ..., COLUMN_M)
    from table2 where MODEL_ID = old_model_id;

    --and so on for table3 and table4

end;
于 2013-09-25T13:06:17.663 回答