ALTER [IGNORE] TABLE tbl_name
alter_spec [, alter_spec ...]
alter_spec:
ADD [COLUMN] col_def [FIRST | AFTER col_name]
| ADD INDEX [idx_name] (col_list)
| ADD PRIMARY KEY (col_list)
| ADD UNIQUE [idx_name] (col_list)
| ALTER [COLUMN] col_name {SET DEFAULT val | DROP DEFAULT}
| CHANGE [COLUMN] old_col_name col_def
| MODIFY [COLUMN] col_def
| DROP [COLUMN] col_name
| DROP PRIMARY KEY
| DROP INDEX idx_name
| RENAME [AS] new_tbl_name
| table_options
ALTER TABLE employee ADD COLUMN account_number INT;
ALTER TABLE employee ADD INDEX idx_id (id);
ALTER TABLE employee ADD PRIMARY KEY (id);
ALTER TABLE employee ADD UNIQUE uk_email (email);
ALTER TABLE employee CHANGE id salary INT;
ALTER TABLE employee DROP COLUMN customer_id;
ALTER TABLE employee DROP PRIMARY KEY;
ALTER TABLE employee DROP INDEX idx_customer_id;
ALTER TABLE employee MODIFY first_name VARCHAR(100);
ALTER TABLE employee RENAME TO customer;
ALTER TABLE books
ADD PRIMARY KEY (book_id),
ADD CONSTRAINT fk_pub FOREIGN KEY (pub_id) REFERENCES publishers(pub_id),
ADD COLUMN format ENUM('paperback','hardcover') NOT NULL AFTER book_name;
ALGORITHM=INPLACE、LOCK=NONE,減少鎖表時間pt-online-schema-change 或 gh-ost 雙寫工具零停機變更SHOW PROCESSLIST 確認無長鎖CHANGE 需完整重定義欄位定義,MODIFY 僅調整型別/屬性INSTANT ADD COLUMN(僅元數據修改,極快)DROP COLUMN 也支援 INPLACEinnodb_file_per_table=ON 以利空間回收熟練 ALTER TABLE 各子句,配合 Online DDL 與線上變更工具,即可安全演進資料庫結構。