Oracel 批量更新列值
来源:互联网 发布:梁朝伟唱功 知乎 编辑:程序博客网 时间:2024/06/07 11:03
Oracel 批量更新列值
- Oracel 批量更新列值
- 场景当一个表模型新增字段后要关联其他表来更新该字段的值如果数据量小可以直接全量将表更新但如果数据量大应该只更新新增字段
- 模拟将b表中b2字段的值更新到a表的a2字段中
- 结果
- 示例一
- 示例二
- 示例三
场景:当一个表模型新增字段后要关联其他表来更新该字段的值。如果数据量小可以直接全量将表更新,但如果数据量大,应该只更新新增字段。
模拟:将b表中b2字段的值更新到a表的a2字段中。
结果:
示例一
update a set a2 = (select b2 from b where a1 = b1) where exists (select 1 from b where a1 = b1)--这一句是为了防止a中a1 != a2 的数据被更新为空!!! update a set a.a2 = (select b.b2 from b where b.b1 = a.a1) where a.a1 in (select b.b1 from b)
示例二
merge into a using (select b1, b2 from b) b ON (a.a1 = b.b1) WHEN MATCHED THEN UPDATE SET a.a2 = b.b2
示例三
update (select a.a1, a.a2, b.b2 new_a2 from a, b where a.a1 = b.b1) set a2 = new_a2
注意:
1、示例1中的exists 和 in 字句
2、示例三中如果b表的b1不是主键的话会报错请添加主键:
ORA-01779: 无法修改与非键值保存表对应的列
ALTER TABLE b ADD CONSTRAINT b_id PRIMARY KEY(b1);
0 0
- Oracel 批量更新列值
- sql 中批量更新或计算某列的值
- SQL Server 批量更新字段值为ROW_NUMBER()+列名称
- SQL Server cast() 批量更新列内容
- oracel中批量插入数据
- oracel 分组列合并方法
- 更新某一列值
- 批量更新行集(所有行的所有列(除第一列)的列值=原列值-第一行列值)
- oracel 批量删除 所有表 及 数据
- ORACEL的多列添加与删除
- 批量更新表中某字段值
- oracel
- Oracel
- 批量更新
- 批量更新
- 批量更新
- 批量更新
- 批量更新
- HTML5标签整理三
- Intent以及IntentFilter详解
- Android框架之XUtils框架
- AC自动机 专题训练[loading......]
- 线程池和异步线程
- Oracel 批量更新列值
- java socket参数详解:SoLinger
- JQuery EasyUI中文网
- 求最长不下降序列
- Intellij Idea 生成serialVersionUID的方法
- 找到一个可用的数字
- Java核心技术笔记-第11章
- 蛮力法之背包问题
- 新的开始!