SQL-有条件地拆分容器行

内森·布鲁萨德(Nathan Bruissard)

在迁移容器的过程中,如果有两个表;

  1. TABLE_MAPPING (old_value, new_value)
  2. TABLE_USING (value, data...)

TABLE_USING正在引用(FK)不相关表中的容器。TABLE_MAPPING是临时用于迁移的,目标是将内容从已弃用的容器移到新的容器。

这里的问题是,有时容器不仅被替换,而且被拆分为多个新容器,例如TABLE_MAPPING可能包含:

OLD_VALUE 新价值
1个 10
1个 11
2 20

该查询将导致将值“ 1”的一行“更新”为值“ 10”和“ 11”的两行。

有没有简单的SQL方法可以做到这一点?还是应该使用PL / SQL?

编辑:根据要求,这是使用TABLE_MAPPING上述方法之前/之后的示例

之前:

IRRELEVANT_COLUMNS ...
1个 ...
2 ...

后:

IRRELEVANT_COLUMNS ...
10 ...
12 ...
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;

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

SQL-根据前一行的值有条件地合并行

来自分类Dev

SQL有条件地更新每一行

来自分类Dev

SQL在其他行上有条件地显示

来自分类Dev

SQL Server查询:有条件地获取总和

来自分类Dev

SQL语句有条件地选择相关记录

来自分类Dev

在SQL Server中有条件地应用联接

来自分类Dev

如何有条件地使用SQL通配符?

来自分类Dev

如何有条件地从SQL Server选择记录

来自分类Dev

SQL 在行之间有条件地删除

来自分类Dev

如果满足所有条件,则SQL获取行

来自分类Dev

SQL:基于主表中的行值将多个表有条件地关联到单个表的最佳方法

来自分类Dev

有条件地在sql plus中调用sql脚本

来自分类Dev

有条件的多表SQL查询

来自分类Dev

有条件的纯SQL查询

来自分类Dev

有条件选择-SQL Server

来自分类Dev

有条件的Oracle SQL案例

来自分类Dev

SQL Server:有条件地添加行和列

来自分类Dev

根据表数据有条件地执行SQL查询/语句

来自分类Dev

Maven SQL插件:有条件地执行脚本

来自分类Dev

SQL Server:可以有条件地合并插入还是更新源表?

来自分类Dev

SQL Server,如何有条件地更新多个记录?

来自分类Dev

SQL Server-有条件地增加计数器

来自分类Dev

有条件地在原始postgresql函数中执行SQL语句吗?

来自分类Dev

Spark SQL根据列数据类型有条件地选择列

来自分类Dev

SQL Server有条件地在列之间移动值

来自分类Dev

SQL-有条件地联接和替换两个表之间的值

来自分类Dev

(SQL)在查询中,如何使用仅有条件地需要JOIN的CASE语句?

来自分类Dev

SQL Server:可以有条件地合并插入还是更新源表?

来自分类Dev

sql-有条件地联接两个表!点火器

Related 相关文章

热门标签

归档