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

MySQL 主鍵新增、刪除與自增操作實戰

     編輯:MySQL 綜合教學

主鍵操作是 MySQL 基礎中的基礎。本文涵蓋查看建表語句、修改字符集、主鍵類型差異、新增刪除主鍵與自增屬性的完整操作指南,適合初學者快速掌握。

查看表結構與字符集

SHOW CREATE TABLE tablename;

輸出範例顯示主鍵定義、引擎、預設字符集等關鍵資訊。

字符集修改三種情境

  1. 修改資料庫預設字符集:ALTER DATABASE maildb DEFAULT CHARACTER SET utf8;
  2. 修改資料表預設字符集:ALTER TABLE mailtable DEFAULT CHARACTER SET utf8;
  3. 連同欄位資料一併轉換(慎用):ALTER TABLE tbl_name CONVERT TO CHARACTER SET charset_name;

避坑指南:若欄位實際儲存編碼與定義不符(如定義 latin1 實存 utf8),需先轉為 BLOB 再轉回目標類型:

ALTER TABLE t1 CHANGE c1 c1 BLOB;
ALTER TABLE t1 CHANGE c1 c1 TEXT CHARACTER SET utf8;

兩種主鍵模式的關鍵差異

模式定義語法插入行為適用場景
PRIMARY KEYPRIMARY KEY (id)必須顯式提供值,否則預設 0 導致重複錯誤業務主鍵(如 UUID、訂單號)
AUTO_INCREMENTid INT NOT NULL AUTO_INCREMENT PRIMARY KEY自動遞增,插入時可省略或給 NULL/0代理主鍵(無業務含義)

主鍵與自增操作指令

-- 新增主鍵
ALTER TABLE tb ADD PRIMARY KEY (id);

-- 修改欄位為自增主鍵(需先刪除舊主鍵)
ALTER TABLE tb CHANGE id id INT(10) NOT NULL AUTO_INCREMENT=1;

-- 刪除自增主鍵(順序固定:先去自增,再刪主鍵)
ALTER TABLE tb CHANGE id id INT(10);  -- 移除 AUTO_INCREMENT
ALTER TABLE tb DROP PRIMARY KEY;      -- 刪除主鍵約束

理解主鍵類型差異、遵循操作順序,能有效避免「Duplicate entry '0' for key 'PRIMARY'」等常見錯誤。

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