SQL-有条件地拆分容器行
在迁移容器的过程中,如果我们有两个表SQL-有条件地拆分容器行,sql,oracle,Sql,Oracle,在迁移容器的过程中,如果我们有两个表 表映射(旧值、新值) TABLE_使用(值、数据…) TABLE\u USING引用(FK)不相关表中的容器。 表映射临时用于迁移,目标是将内容从不推荐的容器移动到新容器 这里的问题是,有时容器不仅被替换,而且被拆分为多个新容器,例如表\u映射可能包含: 旧价值 新价值 1. 10 1. 11 2. 20 你需要两个步骤。下面我首先插入所有新行,然后删除所有旧行 -- insert rows with new values insert into table
表映射(旧值、新值)
TABLE_使用(值、数据…)
TABLE\u USING
引用(FK)不相关表中的容器。
表映射
临时用于迁移,目标是将内容从不推荐的容器移动到新容器
这里的问题是,有时容器不仅被替换,而且被拆分为多个新容器,例如表\u映射
可能包含:
旧价值
新价值
1.
10
1.
11
2.
20
你需要两个步骤。下面我首先插入所有新行,然后删除所有旧行
-- insert rows with new values
insert into table_using (value, data ...)
select m.new_value, u.data ...
from table_using u
join table_mapping m on m.old_value = u.value;
-- delete rows with old values
delete from table_using where value in (select old_value from table_mapping);
-- commit the transaction
commit;
请提供示例数据和所需结果。@GordonLinoff我在编辑中格式化了一个示例