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

MySQL ALTER TABLE 實戰操作指南:欄位新增/修改/刪除、索引管理與表重命名完整語法範例

     編輯:MySQL 綜合教學

MySQL ALTER TABLE 核心操作速查與實戰範例

針對 ALTER TABLE 高頻子句,提供標準語法、參數說明與可直接執行的範例,覆蓋欄位增刪改、索引全生命週期、表重命名。

一、欄位新增

ALTER TABLE t2 ADD d TIMESTAMP;
ALTER TABLE infos ADD ex TINYINT NOT NULL DEFAULT '0';

二、欄位刪除

ALTER TABLE t2 DROP COLUMN c;

三、欄位重命名(同步可改型別)

ALTER TABLE t1 CHANGE a b INTEGER;

四、欄位型別變更

ALTER TABLE t1 CHANGE b b BIGINT NOT NULL;
ALTER TABLE infos CHANGE list list TINYINT NOT NULL DEFAULT '0';

五、表重命名

ALTER TABLE t1 RENAME t2;

六、索引管理

1. 一般索引

ALTER TABLE tablename CHANGE depno depno INT(5) NOT NULL;
ALTER TABLE tablename ADD INDEX 索引名 (欄位名1[, 欄位名2 ...]);
ALTER TABLE tablename ADD INDEX emp_name (name);

2. 主鍵索引

ALTER TABLE tablename ADD PRIMARY KEY (id);

3. 唯一索引

ALTER TABLE tablename ADD UNIQUE emp_name2 (cardnumber);

4. 刪除索引

ALTER TABLE tablename DROP INDEX emp_name;

七、通用欄位增刪改模板

-- 新增
ALTER TABLE table_name ADD field_name field_type;

-- 修改名稱與型別
ALTER TABLE table_name CHANGE old_field_name new_field_name field_type;

-- 刪除
ALTER TABLE table_name DROP field_name;

八、主鍵建立(含自增)

ALTER TABLE tablename
ADD new_field_id INT(5) UNSIGNED DEFAULT 0 NOT NULL AUTO_INCREMENT,
ADD PRIMARY KEY (new_field_id);

九、實戰避坑提醒

  • 大表鎖表:MySQL 5.6+ 支援 ALGORITHM=INPLACE,8.0 更多 INSTANT DDL;舊版用 pt-online-schema-change
  • 型別縮減:有索引前綴時不可縮短至前綴長度以下
  • 外鍵約束:修改被參考欄位需先 DROP FOREIGN KEY
  • 權限需求:ALTER, CREATE, DROP, INDEX 等
  • 字符集:修改表字符集 ALTER TABLE tbl CONVERT TO CHARACTER SET utf8mb4 會重建全表

掌握核心語法,配合線上變更工具,實現安全、零停機結構演進。

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