在 MySQL 中為現有資料表添加新欄位,使用 ALTER TABLE 陳述式即可完成。基本語法如下:
ALTER TABLE `表名` ADD `欄位名` 資料類型 [約束條件];
例如要在 users 表中新增一個預設值為 200 的整數欄位 score:
ALTER TABLE `users` ADD `score` INT(11) NOT NULL DEFAULT 200;
| 類型/約束 | 說明 |
|---|---|
| INT / BIGINT | 整數,括號內為顯示寬度 |
| VARCHAR(n) | 可變長字串,n 為最大字元數 |
| DATETIME / TIMESTAMP | 日期時間,TIMESTAMP 會自動更新 |
| NOT NULL | 禁止為空 |
| DEFAULT '值' | 設定預設值 |
| AUTO_INCREMENT | 自動遞增(僅限整數主鍵) |
| COMMENT '備註' | 欄位說明,利於維護 |
MySQL 支援在特定位置插入欄位:
FIRST:作為第一個欄位AFTER `existing_col`:置於指定欄位之後ALTER TABLE `orders` ADD `status` TINYINT DEFAULT 1 AFTER `order_date`;
pt-online-schema-change 等工具。