国产精品免费嫩草研究院|无遮羞动漫在线观看AV|国产麻豆精品传媒AV国产在线|村在线观看|寂寞情人1正版|韩国床震韩国床震古|精品系列专区久久

記一次批量更新整型類型的列 → 探究 UPDATE 的使用細節

開心一刻今天,她給我打來電話
她:你明天陪我去趟醫院吧
我:怎么了
她:我懷孕了,陪我去打胎
我:他的嗎
她:嗯
我心一沉,猶豫了片刻:生下來吧,我養!
她:他的孩子,你不配養!
我:我隨孩子姓

記一次批量更新整型類型的列 → 探究 UPDATE 的使用細節

文章插圖
需求背景最近接到一個數據遷移的需求,舊系統的數據遷移到新系統;舊系統不會再新增業務數據,業務操作都在新系統上進行
為了降低遷移的影響,數據進行分批遷移,也就是說新舊系統會并行一段時間
數據分批不是根據 id 范圍來分的,也就說每批數據的 id 都是無規律的
另外,為了保證新舊系統數據的對應,新系統的 id 盡可能的沿用舊系統的 id
因為表 id 在新舊系統都是自增的,所以遷移的時候,舊系統的 id 可能在新系統已經被占用了,類似如下
記一次批量更新整型類型的列 → 探究 UPDATE 的使用細節

文章插圖
需求描述數據遷移的時候,盡可能沿用舊系統的 id,而沖突的 id 需要進行批量調整
如何調整這批沖突的 id,正是我當下要實現的需求
我的實現是根據業務數據的增長情況,結合目前新系統的最大 id 來預設一個起始的 id
記一次批量更新整型類型的列 → 探究 UPDATE 的使用細節

文章插圖
這個 SQL 該如何寫?
需求實現有小伙伴可能覺得,這還不簡單?
不就 5 條數據嘛,這么寫不就搞定了
記一次批量更新整型類型的列 → 探究 UPDATE 的使用細節

文章插圖
多簡單的事,還鋪墊那么多,樓主你到底會不會?
樓主此刻幡然醒悟:小伙伴,你好厲害哇哦
記一次批量更新整型類型的列 → 探究 UPDATE 的使用細節

文章插圖
但是如果沖突的數據很多了(幾百上千),你也這樣一條一條改?
如果你真這樣做,我是真心佩服你
記一次批量更新整型類型的列 → 探究 UPDATE 的使用細節

文章插圖
很顯然,理智的小伙伴更多
那該如何實現了?
樓主就不賣關子了,可以用局部變量 +  UPDATE 來實現,直接上 SQL
記一次批量更新整型類型的列 → 探究 UPDATE 的使用細節

文章插圖
我們來看實際案例
表 tbl_batch_update
記一次批量更新整型類型的列 → 探究 UPDATE 的使用細節

文章插圖
數據如下
記一次批量更新整型類型的列 → 探究 UPDATE 的使用細節

文章插圖
執行效果如下
記一次批量更新整型類型的列 → 探究 UPDATE 的使用細節

文章插圖
更新之后
記一次批量更新整型類型的列 → 探究 UPDATE 的使用細節

文章插圖
更嚴謹點
記一次批量更新整型類型的列 → 探究 UPDATE 的使用細節

文章插圖
該如何實現?  UPDATE 是不是也支持 ORDER BY ?
還真支持,如下所示
記一次批量更新整型類型的列 → 探究 UPDATE 的使用細節

文章插圖
樓主平時使用 UPDATE 的時候,基本沒結合 ORDER BY ,也沒嘗試過結合 LIMIT
這次嘗試讓樓主對 UPDATE 產生了陌生的感覺,它的完整語法應該是怎樣的?我們慢慢往下看
UPDATE下文都是基于 MySQL 8.0 的官方文檔 UPDATE Statement 整理而來,推薦大家直接去看官方文檔

經驗總結擴展閱讀