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

MySQL ALTER TABLE 修改表結構完整指南:增欄、改型別、重命名、索引、主鍵、AUTO_INCREMENT 實戰

     編輯:MySQL 綜合教學

前言

ALTER TABLE 是修改表結構的核心指令,支援單次執行多個動作 (以逗號分隔)。本文透過實戰案例,涵蓋增欄、改型別、重命名欄位/表、加索引/主鍵、刪欄、加 AUTO_INCREMENT 等高頻操作。

實戰案例速查

-- 1. 新增欄位 (指定位置)
ALTER TABLE TestResult ADD xinlinDoc LONGBLOB;
ALTER TABLE TestResult ADD xinlinDocName VARCHAR(50);

-- 2. 重命名表
ALTER TABLE t1 RENAME t2;

-- 3. 修改欄位型別 + 重命名欄位
ALTER TABLE t2 MODIFY a TINYINT NOT NULL, CHANGE b c CHAR(20);

-- 4. 新增 TIMESTAMP 欄位
ALTER TABLE t2 ADD d TIMESTAMP;

-- 5. 加索引 + 設主鍵
ALTER TABLE t2 ADD INDEX (d), ADD PRIMARY KEY (a);

-- 6. 刪除欄位
ALTER TABLE t2 DROP COLUMN c;

-- 7. 新增 AUTO_INCREMENT 主鍵 (需先加索引、NOT NULL)
ALTER TABLE t2 ADD c INT UNSIGNED NOT NULL AUTO_INCREMENT, ADD INDEX (c);

核心語法規則

  • 多動作單指令:ALTER TABLE t ACTION1, ACTION2, ...; 原子執行,減少鎖表時間。
  • MODIFY:只改型別/屬性,名稱不變。
  • CHANGE:改名稱 + 型別/屬性 (舊名 新名 型別)。
  • ADD INDEX / ADD PRIMARY KEY / ADD UNIQUE 可同步建立。
  • AUTO_INCREMENT 欄位**必須被索引**且 NOT NULL。

常見操作對照表

操作語法範例
新增欄位 (指定位置)ALTER TABLE t ADD col INT AFTER other_col;
修改欄位型別ALTER TABLE t MODIFY col BIGINT NOT NULL;
重命名欄位ALTER TABLE t CHANGE old_col new_col INT;
刪除欄位ALTER TABLE t DROP COLUMN col;
重命名表ALTER TABLE t1 RENAME t2;
加主鍵ALTER TABLE t ADD PRIMARY KEY (id);
加唯一索引ALTER TABLE t ADD UNIQUE uk_name (name);
刪除索引ALTER TABLE t DROP INDEX idx_name;

延伸閱讀

  • 通過 MySQL 命令列增加新用戶
  • MySQL 權限表架構解析
  • 授予 MySQL 用戶權限實例完整流程
  • MySQL 索引設計必知的 8 件事
  • 如何查看 MySQL 索引
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved