一.构造相关表P1,P2 create table p1(id int,name char(10)); create table p2(id int,name char(10)); 二.批量插入数据 begin for i in 1 .. 100000 loop insert into p1 values(i,'a'||i); end loop ; commit; end; begin for i in 1 .. 100000 loop insert into p2 values(i,'b'||…
-----对于普通表 实现: UPDATE T_PM_DEPOSIT_HIS b SET flag = SUBSTR( flag, 1, 8 )||'4'|| CASE WHEN term <= 365 THEN '1' ELSE '2' END AS flag WHERE b.data_date>=20130101 DECLARE CURSOR cur IS SELECT b.ROWID ROW_ID FROM T_PM_DEPOSIT_HIS b where b.data_date>…
需求: 小表数据量20w条左右,大表数据量在4kw条左右,需要根据大表筛选出150w条左右的数据并关联更新小表中5k左右的数据. 性能问题: 对筛选条件中涉及的字段加index后,如下常规的update语句仍耗时半小时左右. UPDATE WMOCDCREPORT.DM_WM_TRADINGALL A SET ( A.RELATIONSHIPNO, A.PACKAGE ) = (SELECT B.RELATIONSHIPNO, CASE ' ' ' ') THEN 'BC' ') THEN 'P…
使用场景 某个字段数据异常,利用另外一张表同步修改该表异常字段的数据; 关联更新 UPDATE tableName1 AS t1 LEFT JOIN tableName12 AS t2 ON t1.xx = t2.xx SET t1.Col = '' WHERE t1.Id = 147852 AND t2.`Name` <> '' 当然,也可以使用Inner Join或者Right Join 在实际操作中,还有可能补入相关业务数据来保持数据完整,有以下两种操作方式 查询生成数据 INS…
在SQL中,经常用到关联查询,比如select a.* from A a inner join B b on a.PId=b.FId where 条件,SQL中也支持类似的关联更新和关联删除. 关联更新语法: update a set a.字段=” from A a inner join B b on a.PId=b.FId where 条件 关联删除语法: delete from a from A a inner join B b on a.PId=b.FId where 条件 注解:A,B为…