首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> MySQL 資料庫 >> MySQL 綜合教學

MySQL ALTER TABLE 完整指南:修改欄位、索引、表名與表類型

     編輯:MySQL 綜合教學

MySQL ALTER TABLE 完整操作指南

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。

二、修改欄位型別與名稱

  • MODIFY(僅改型別/屬性): ALTER TABLE testalter_tbl MODIFY c CHAR(10);
  • CHANGE(可同時改名與型別): ALTER TABLE testalter_tbl CHANGE i j BIGINT;(舊名 i → 新名 j,型別 BIGINT)
    再改回 INT:ALTER TABLE testalter_tbl CHANGE j j INT;

三、設定 NOT NULL 與預設值

  • 指定 NOT NULL + DEFAULT: 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 等線上變更工具,或在維護窗口操作。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved