在MySQL中使用DROP TABLE命令可以刪除一張表,然而,如果不小心刪除了一個表,有時候會出現(xiàn)刪除不徹底的情況,即無法再次創(chuàng)建同名的表。這是因為MySQL的表在刪除時并不是直接從硬盤中刪除,而是將表對應(yīng)的文件移動到Trash目錄中,而Trash目錄是只讀的,無法再次創(chuàng)建同名的表。
mysql>DROP TABLE mytable; Query OK, 0 rows affected (0.05 sec) mysql>CREATE TABLE mytable (id int); ERROR 1050 (42S01): Table 'mytable' already exists
上面的例子中,我們想重新創(chuàng)建名為mytable的表,但卻遇到了錯誤。這時,需要手動清空Trash目錄,才能夠再次創(chuàng)建同名的表。下面是一段清空Trash目錄的命令。
sudo rm -rf /usr/local/mysql/data/.Trash*
執(zhí)行以上命令后,再次嘗試創(chuàng)建同名的表,就會成功執(zhí)行。
mysql>CREATE TABLE mytable (id int); Query OK, 0 rows affected (0.05 sec)
為了避免誤刪數(shù)據(jù),我們需要謹(jǐn)慎操作,建議在刪除表前先備份數(shù)據(jù),以防數(shù)據(jù)丟失。如果無意間刪除了表,也需要及時清空Trash目錄,才能夠再次創(chuàng)建同名的表。