oracle中要謹慎使用update交叉更新!
SQL> select *from a1;
ID N SFZHAO
---------- - ------------------
1 a
1 c
2 a
2 c
3 c 123
SQL> select *from a2;
ID N SFZHAO
---------- - ------------------
1 c 111
2 d 111
--如果使用下面的sql來更新表a1的話,我們發現出現了我們不希望出現的結果,把a1中id=3所對應的sfzhao由原來的123更新成了null,這是我們不希望的。
SQL> update a1 set sfzhao=(select a2.sfzhao from a2 where a2.id=a1.id and a2.nam
e=a1.name);
已更新5行。
SQL> select *from a1;
ID N SFZHAO
---------- - ------------------
1 a
1 c 111
2 a
2 c
3 c
SQL> rollback;
回退已完成。
--為了糾正上面update所產生的錯誤結果,在where字句中做了進一步的限定。
SQL> update a1 set sfzhao=(select a2.sfzhao from a2 where a2.id=a1.id and a2.nam
e=a1.name) where (id , name) in (select id , name from a2 where a2.id=a1.id and
a2.name=a1.name);
已更新 1 行。
SQL> select *from a1;
ID N SFZHAO
---------- - ------------------
1 a
1 c 111
2 a
2 c
3 c 123
SQL>
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/19602/viewspace-1014388/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- java流操作要謹慎Java
- 為什麼要謹慎使用Linux find命令?Linux
- 謹慎處理 Service Worker 的更新
- 【Lambda、SteamAPI】謹慎使用流API
- DBA要謹慎關閉資料庫(轉)資料庫
- 請謹慎使用sp_executesqlSQL
- 升級oracle一定要謹慎Oracle
- AIX系統謹慎使用reboot命令AIboot
- API介面公司要考察的核心,讓你謹慎合作API
- 【SQL*Plus】在SQL*Plus中謹慎使用Ctrl+S快捷鍵SQL
- Linux需要謹慎使用的幾個命令Linux
- 大型專案開發:謹慎使用智慧指標指標
- JAVA基礎:謹慎使用Date和Time類(轉)Java
- 技術人,請謹慎跳槽!
- 自媒體培訓行業水很深,入行新人要謹慎選擇行業
- UNIX下VG遷移(謹慎) - 轉
- AIX強制關機需要謹慎AI
- 高峰期謹慎編譯業務物件編譯物件
- 新程式語言選擇需謹慎
- 搞程式有風險 修bug需謹慎
- 在SQL Server中謹慎匯入匯出大容量資料SQLServer
- 安全機構建議奧巴馬政府謹慎使用開源軟體
- 微軟今日徹底放棄Windows XP 繼續使用需謹慎微軟Windows
- 認識oracle的update更新Oracle
- 第55條:謹慎地進行優化優化
- 【警鐘】謹慎刪除歸檔日誌
- 蘋果AirPods耳機補買一隻599元 謹慎使用蘋果AI
- STL程式設計實踐一:謹慎使用下標運算子 (轉)程式設計
- 高新企業認證工作網,選擇高新技術企業認證工作網要謹慎
- MySQL更新資料,如何使用updateMySql
- Oracle中的for update 和 for update nowaitOracleAI
- Oracle\MS SQL Server Update多表關聯更新OracleSQLServer
- 你的應用有漏洞嗎?使用第三方依賴需謹慎
- 直播平臺開發難嗎?自己開發須謹慎
- 網付智慧數字經營系統,代理需謹慎
- 外媒:Apple Watch不如傳統手錶 投資需謹慎APP
- 從Go、Swift出發:語言的選擇需謹慎GoSwift
- 休學創業需謹慎,一場遊戲一場夢?創業遊戲