MySQL 屬於關係型數據庫(RDBMS),數據以「表格」形式存儲,由行(記錄)和列(欄位)組成。當需要調整表結構時,必須使用 ALTER TABLE 命令。
-- 登入並建立測試表
mysql -u root -p
USE TUTORIALS;
CREATE TABLE testalter_tbl (
i INT,
c CHAR(1)
);
SHOW COLUMNS FROM testalter_tbl;
ALTER TABLE testalter_tbl DROP i;
若表僅剩一欄位,無法使用 DROP 刪除。
-- 預設加到末尾 ALTER TABLE testalter_tbl ADD i INT; -- 指定位置 ALTER TABLE testalter_tbl ADD i INT FIRST; -- 第一列 ALTER TABLE testalter_tbl ADD i INT AFTER c; -- c 之後
-- MODIFY:僅修改類型 ALTER TABLE testalter_tbl MODIFY c CHAR(10); -- CHANGE:修改名稱和類型(舊名 新名 類型) ALTER TABLE testalter_tbl CHANGE i j BIGINT; ALTER TABLE testalter_tbl CHANGE j j INT;
-- 設定 NOT NULL + 預設值 ALTER TABLE testalter_tbl MODIFY j BIGINT NOT NULL DEFAULT 100; -- 僅修改預設值 ALTER TABLE testalter_tbl ALTER i SET DEFAULT 1000; -- 刪除預設值 ALTER TABLE testalter_tbl ALTER i DROP DEFAULT;
ALTER TABLE testalter_tbl ENGINE = MyISAM; SHOW TABLE STATUS LIKE 'testalter_tbl'\G
ALTER TABLE testalter_tbl RENAME TO alter_tbl;
ALTER TABLE 也可用於建立/刪除索引,詳見後續章節pt-online-schema-change 等工具最佳實踐: 變更前先 SHOW CREATE TABLE 備份結構,測試環境驗證無誤再上線。