1.普通更新update
当你需要更新的表是单个或者被更新的字段不需要关联其他表带过来,则最后选择标准的update语句,
速度最快,稳定性最好,并返回影响条数。如果where条件中的字段加上索引,那么更新效率就更高。
但对需要关联表更新字段时,update的效率就非常差。
2.inline view更新法
inline view更新法就是更新一个临时建立的视图。
update (select a.blzt as blzt,b.ft_lstate as ft_lstate
from gkfq_rec a,oa2_ftask b where a.slid=b.fi_inst)
set blzt=ft_lstate;
3.merge into 更新法
MERGE INTO 表名 alias 1
USING (table|view|sub_query) alias 2
ON (join condition两个表的关联条件)
WHEN MATCHED THEN
UPDATE
SET alias1.col=alias2.col
WHEN NOT MATCHED THEN
INSERT (column_list) VALUES (column_values);
方法描述 | 适用范围 | 运行效率 |
传统方案 | 一般情况适用 | 单表更新效率高且稳定,多表时效率较慢 |
inline view更新法 | 关联字段为主键 | 速度较快 |
merge更新法 | 关联字段非主键,适用于两表关联 | 非主键关联表更新,速度较快 |
快速游标更新法 | 逻辑较复杂的情况 | 复杂逻辑时效率很高 |