我想制作一个级联副本。我有一个MODEL,这个MODEL的规格存储在4个表中,一个MODEL由表中的MODEL_ID标识。 MODEL的MODEL_ID是主键,通过添加新的MODEL增加MODEL_ID。
如何制作模型的副本?
感谢。
答案 0 :(得分:0)
假设您必须复制由MODEL_ID = old_model_id
标识的模型,首先您必须创建一个新的MODEL_ID(例如存储在名为new_model_id
的变量中),例如使用序列(在下面的代码中调用SEQ_ID_MODEL
,但您可以使用其他技术来创建新ID。
然后你必须为4个表中的每个表编写一个insert命令,检索模型以使用旧的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;