- 工信部備案號 滇ICP備05000110號-1
- 滇公安備案 滇53010302000111
- 增值電信業務經營許可證 B1.B2-20181647、滇B1.B2-20190004
- 云南互聯網協會理事單位
- 安全聯盟認證網站身份V標記
- 域名注冊服務機構許可:滇D3-20230001
- 代理域名注冊服務機構:新網數碼
如何將MySQL的兩個表名對調
本文介紹怎么將MySQL的兩個表名調換,這個辦法更能確保更換的安全,不出其他的問題,有需要的可以參考下。
前言
前段實踐遇到個問題,在類似pt-osc場景下,需要將兩個表名對調,怎么才能確保萬無一失呢?
分析
一些人可能就會想,表名對掉還不簡單嗎,相互RENAME一下嘛。
但是,我們想要的是同時完成表名對調,如果是先后的對掉,可能會導致有些數據寫入失敗,那怎么辦?
解決
其實也不難,從MySQL手冊里就能找到方法,那就是:同時鎖定2個表,不允許寫入,然后對調表名。
我們通常只鎖一個表,那么同時鎖兩個表應該怎么做呢,可以用下面的方法:
1 LOCK TABLES t1 WRITE, t2 WRITE;
2 ALTER TABLE t1 RENAME TO t3;
3 ALTER TABLE t2 RENAME TO t1;
4 ALTER TABLE t3 RENAME TO t2;
5 UNLOCK TABLES;
1 2 3 4 5 | LOCK TABLES t1 WRITE, t2 WRITE; ALTER TABLE t1 RENAME TO t3; ALTER TABLE t2 RENAME TO t1; ALTER TABLE t3 RENAME TO t2; UNLOCK TABLES; |
看到了吧,其實很簡單,兩個表同時加表級寫鎖,然后用ALTER語法改名就可以了。
以上就是如何將MySQL的兩個表名對調的全部內容,希望本文對大家在MySQL的使用中有所幫助。
提交成功!非常感謝您的反饋,我們會繼續努力做到更好!
這條文檔是否有幫助解決問題?
售前咨詢
售后咨詢
備案咨詢
二維碼
TOP