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

MySQL 常用 DDL 命令整理:主鍵、欄位增刪改、重命名、索引管理、唯一約束速查表

     編輯:MySQL 綜合教學

MySQL 表結構變更 (DDL) 是開發、運維高頻操作。本文將 ALTER TABLE 核心語法分類整理為主鍵、欄位增刪改、重命名、索引 (普通/主鍵/唯一/刪除) 六大類,提供標準語法與實戰範例,適合列印作桌邊速查卡。

一、檢查欄位是否存在 (資訊綱要查詢)

USE imss;
SELECT IF(EXISTS(
  SELECT * FROM information_schema.columns
  WHERE table_name='imss_righttemplate' AND column_name='id_righttemplate'
), 'yes', 'no') AS exists_flag;

二、主鍵操作

-- 新增自增主鍵欄位 (針對無主鍵表)
ALTER TABLE tblname
  ADD new_field_id INT(5) UNSIGNED DEFAULT 0 NOT NULL AUTO_INCREMENT,
  ADD PRIMARY KEY (new_field_id);

三、欄位增刪改

操作標準語法範例
新增欄位ALTER TABLE tbl ADD col TYPE [NULL|NOT NULL] [DEFAULT val];ALTER TABLE t2 ADD d TIMESTAMP;
ALTER TABLE infos ADD ex TINYINT NOT NULL DEFAULT 0;
刪除欄位ALTER TABLE tbl DROP COLUMN col;ALTER TABLE t2 DROP COLUMN c;
重命名欄位ALTER TABLE tbl CHANGE old_col new_col TYPE;ALTER TABLE t1 CHANGE a b INTEGER;
修改欄位型別/屬性ALTER TABLE tbl CHANGE col col NEW_TYPE [NULL|NOT NULL] [DEFAULT val];ALTER TABLE t1 CHANGE b b BIGINT NOT NULL;
ALTER TABLE infos CHANGE list list TINYINT NOT NULL DEFAULT 0;

四、表重命名

ALTER TABLE t1 RENAME TO t2;

五、索引管理

類型語法範例
普通索引ALTER TABLE tbl ADD INDEX idx_name (col1[, col2...]);ALTER TABLE tablename ADD INDEX emp_name (name);
主鍵索引ALTER TABLE tbl ADD PRIMARY KEY (col);ALTER TABLE tablename ADD PRIMARY KEY (id);
唯一索引ALTER TABLE tbl ADD UNIQUE idx_name (col);ALTER TABLE tablename ADD UNIQUE emp_name2 (cardnumber);
刪除索引DROP INDEX idx_name ON tbl;
ALTER TABLE tbl DROP INDEX idx_name;
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;

七、實戰避坑提醒

  • 大表 DDL 鎖表:5.6+ 支援 Online DDL (大部分操作不鎖表),舊版用 pt-online-schema-change 或 gh-ost
  • 外鍵約束阻礙:修改被引用欄位前需先 DROP FOREIGN KEY
  • 字符集變更:ALTER TABLE tbl CONVERT TO CHARACTER SET utf8mb4; 會重建表,慎用於大表
  • 索引名稱衝突:同庫內索引名稱唯一,建議前綴 idx_表名_欄位

總結

掌握 ADD/CHANGE/DROP/RENAME/INDEX 五大核心子句,覆蓋 95% 表結構變更需求。大表變更必走線上變更工具,變更前必備份、必驗證、必有回滾方案。

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