首页 > Linux操作系统 > Linux操作系统 > DBA那些事儿 (5). 严谨
有一需求,将t1表中ID数据更改为t1_bak表中的ID数据,存在于t1但不存在于t1_bak的数据保持不变,表t1,t1_bak如下
SQL> select * from t1;
ID NA
———- –
1 a
2 b
3 c
SQL> select * from t1_bak;
ID NA
———- –
1 a1
2 b1
—-SQL1
SQL> update t1 set name= ( select name from t1_bak where t1.id=t1_bak.id);
3 rows updated.
SQL> select * from t1;
ID NA
———- –
1 a1
2 b1
3
SQL> rollback;
Rollback complete.
—SQL2
SQL> update t1 set name= ( select name from t1_bak where
t1.id=t1_bak.id) where exists (select 1 from t1_bak where
t1.id=t1_bak.id);
2 rows updated.
SQL> select * from t1;
ID NA
———- –
1 a1
2 b1
3 c
SQL>
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/7364032/viewspace-614843/ ,如需转载,请注明出处,否则将追究法律责任。