久久青草精品A片狠狠,日韩欧美视频一区二区,亚洲国码AV日韩,国产精品黄在

如何將MySQL的兩個表名對調

2016-11-16 17:25:15 288

如何將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的使用中有所幫助。


提交成功!非常感謝您的反饋,我們會繼續努力做到更好!

這條文檔是否有幫助解決問題?

非常抱歉未能幫助到您。為了給您提供更好的服務,我們很需要您進一步的反饋信息:

在文檔使用中是否遇到以下問題: