萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 程式設計 >  >> 資料庫 >> MySQL 教學

MySQL RENAME TABLE 語法與原子性重命名最佳實踐

基本語法

RENAME TABLE tbl_name TO new_tbl_name [, tbl_name2 TO new_tbl_name2, ...]

核心特性

  • 原子性執行:重命名過程中,其他執行緒無法存取該表,保證一致性。
  • 左到右順序執行:多表重命名按書寫順序依次進行。

常見應用場景

1. 以空表替換現有表(零停機維護)

CREATE TABLE new_table (...);
RENAME TABLE old_table TO backup_table, new_table TO old_table;

2. 交換兩個表名

RENAME TABLE old_table TO backup_table,
             new_table TO old_table,
             backup_table TO new_table;

需引入暫存名稱,因順序執行特性。

3. 跨資料庫移動表(同磁碟分區)

RENAME TABLE current_db.tbl_name TO other_db.tbl_name;

執行前置條件

  • 無鎖定的表(LOCK TABLES)。
  • 無進行中的事務。
  • 擁有原表 ALTER、DROP 權限,新表 CREATE、INSERT 權限。

錯誤處理

多表重命名中若發生錯誤,MySQL 會對**所有已重命名的表執行反向重命名**,回滾至初始狀態。

版本資訊

RENAME TABLE 於 MySQL 3.23.23 引入。

copyright © 萬盛學電腦網 all rights reserved