首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

MySQL DDL 與約束操作完整指南:增刪改查、外鍵、索引、重命名

     編輯:MySQL 資料庫相關知識

欄位操作

操作語法範例
新增欄位ALTER TABLE t ADD col INT NOT NULL DEFAULT 0;
刪除欄位ALTER TABLE t DROP COLUMN col;
修改欄位型別/重命名ALTER TABLE t CHANGE old_col new_col BIGINT NOT NULL;
修改預設值ALTER TABLE t ALTER col SET DEFAULT 'new';

索引操作

類型建立語法刪除語法
普通索引ALTER TABLE t ADD INDEX idx_name (col);ALTER TABLE t DROP INDEX idx_name;
唯一索引ALTER TABLE t ADD UNIQUE uk_name (col);同普通
主鍵ALTER TABLE t ADD PRIMARY KEY (id);ALTER TABLE t DROP PRIMARY KEY;
全文索引ALTER TABLE t ADD FULLTEXT ft_name (col);同普通

外鍵約束操作

新增外鍵

ALTER TABLE child
ADD CONSTRAINT fk_name
FOREIGN KEY (parent_id) REFERENCES parent(id)
ON DELETE CASCADE ON UPDATE CASCADE;
  • 先確保父表被引用欄位有索引
  • ON DELETE/UPDATE:RESTRICT(預設) | CASCADE | SET NULL | NO ACTION

刪除外鍵

ALTER TABLE child DROP FOREIGN KEY fk_name;

查看外鍵名稱:SHOW CREATE TABLE child\G

表重命名

ALTER TABLE old_name RENAME TO new_name;

外鍵相關進階操作

  • 查看表狀態含外鍵資訊:SHOW TABLE STATUS LIKE 't'\G(Comment 欄位)
  • 匯入轉儲檔前關閉檢查:SET FOREIGN_KEY_CHECKS=0; → 匯入 → SET FOREIGN_KEY_CHECKS=1;
  • mysqldump 自動在輸出中包含關閉檢查指令
  • 刪除被引用表需先關閉檢查或刪除外鍵

完整建表示例(含主鍵自增)

ALTER TABLE t ADD new_id INT UNSIGNED NOT NULL AUTO_INCREMENT,
ADD PRIMARY KEY (new_id);
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved