MySQL 的 ALTER TABLE 命令允許你修改數據庫表的結構,包括添加、刪除或修改列,創建或刪除索引,更改列的數據類型等。以下是一些使用 ALTER TABLE 進行數據庫重構的常見操作:
添加列:
你可以使用 ADD COLUMN
子句向表中添加新列。例如,如果你想在 employees
表中添加一個名為 salary
的新列,你可以這樣做:
ALTER TABLE employees
ADD COLUMN salary DECIMAL(10, 2);
刪除列:
使用 DROP COLUMN
子句可以從表中刪除列。例如,刪除 employees
表中的 department
列:
ALTER TABLE employees
DROP COLUMN department;
修改列:
ALTER TABLE
還允許你修改現有列的屬性,如數據類型或列名。要修改列的數據類型,可以使用 MODIFY COLUMN
子句。例如,將 employees
表中的 name
列的數據類型從 VARCHAR(50)
改為 TEXT
:
ALTER TABLE employees
MODIFY COLUMN name TEXT;
要更改列名,可以使用 CHANGE COLUMN
子句。例如,將 employees
表中的 old_name
列重命名為 new_name
:
ALTER TABLE employees
CHANGE COLUMN old_name new_name VARCHAR(50);
添加索引:
使用 ADD INDEX
或 CREATE INDEX
子句可以為表中的列創建索引,以提高查詢性能。例如,為 employees
表的 email
列創建一個唯一索引:
ALTER TABLE employees
ADD UNIQUE INDEX idx_email (email);
刪除索引:
使用 DROP INDEX
子句可以從表中刪除索引。例如,刪除 employees
表中的 idx_employee_id
索引:
ALTER TABLE employees
DROP INDEX idx_employee_id;
其他結構更改:
ALTER TABLE
還支持其他一些結構更改,如設置或取消表的鎖定,更改表的存儲引擎等。例如,將 employees
表的存儲引擎從 InnoDB
改為 MyISAM
:
ALTER TABLE employees
ENGINE=MyISAM;
在進行數據庫重構時,重要的是要確保你了解每個操作的影響,并在必要時備份數據。一些操作可能會導致數據丟失或表鎖定,因此最好在低峰時段進行這些操作,并預先準備好應對可能出現的問題。