萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 程式設計 >  >> 資料庫 >> MySQL 教學

MySQL 將既有表欄位改為 AUTO_INCREMENT 主鍵完整指令

場景:user 表既有 userid 欄位(非自增),需改為自增主鍵,步驟如下:

-- 單條語句完成:修改型別、加 NOT NULL、設 AUTO_INCREMENT、設 PK
ALTER TABLE `user` CHANGE `userid` `userid` INT NOT NULL AUTO_INCREMENT PRIMARY KEY;

執行後表結構變為:

CREATE TABLE `user` (
  `username` VARCHAR(20) NOT NULL,
  `pw` VARCHAR(20) NOT NULL,
  `userid` INT(11) NOT NULL AUTO_INCREMENT,
  PRIMARY KEY (`userid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

擴充:常用 ALTER TABLE 速查表

操作語法範例
新增欄位並設 PKALTER TABLE t ADD new_id INT UNSIGNED NOT NULL AUTO_INCREMENT, ADD PRIMARY KEY (new_id);
新增主鍵ALTER TABLE t ADD PRIMARY KEY (id);
新增普通索引ALTER TABLE t ADD INDEX idx_name (name);
新增唯一索引ALTER TABLE t ADD UNIQUE uk_card (card_no);
刪除索引ALTER TABLE t DROP INDEX idx_name;
新增欄位ALTER TABLE t ADD col_name col_type;
刪除欄位ALTER TABLE t DROP col_name;
重命名欄位ALTER TABLE t CHANGE old_name new_name INT;
調整欄位順序ALTER TABLE t CHANGE col col VARCHAR(20) NOT NULL AFTER other_col;
修改欄位型別ALTER TABLE t CHANGE col col BIGINT NOT NULL;
重命名表ALTER TABLE t RENAME new_t;
外鍵級聯FOREIGN KEY (rid) REFERENCES parent(id) ON DELETE CASCADE ON UPDATE CASCADE

注意:修改既有欄位為 AUTO_INCREMENT 時,該欄位必須為 NOT NULL 且為主鍵或唯一索引鍵的一部分;若表內已有資料,確保現有值不重複且無 0 值,否則會報錯。

copyright © 萬盛學電腦網 all rights reserved