ALTER TABLE 用於修改現有資料表的結構,包括增減欄位、變更型別/名稱、調整預設值、新增/刪除索引、變更儲存引擎、重命名資料表等。
CREATE TABLE testalter_tbl (
i INT,
c CHAR(1)
);
ALTER TABLE testalter_tbl DROP i;(若表僅剩一欄位則無法刪除)ALTER TABLE testalter_tbl ADD i INT;ALTER TABLE testalter_tbl ADD i INT FIRST;ALTER TABLE testalter_tbl ADD i INT AFTER c;注意: FIRST / AFTER 僅能搭配 ADD 使用。若要移動現有欄位,需先 DROP 再 ADD。
ALTER TABLE testalter_tbl MODIFY c CHAR(10);ALTER TABLE testalter_tbl CHANGE i j BIGINT;(舊名 i → 新名 j,型別 BIGINT)ALTER TABLE testalter_tbl CHANGE j j INT;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 tbl ADD INDEX idx_name (col1, col2);ALTER TABLE tbl ADD PRIMARY KEY (col);ALTER TABLE tbl ADD UNIQUE uk_name (col);ALTER TABLE tbl DROP INDEX idx_name;ALTER TABLE 是資料庫結構演進的核心指令。生產環境執行大表 DDL 時,建議評估鎖表影響,考慮使用 pt-online-schema-change 等線上變更工具,或在維護窗口操作。