MySQL ALTER 列移除主鍵和自增?


您可以使用 ALTER 命令來移除主鍵和自增。語法如下:

ALTER TABLE yourTableName DROP PRIMARY KEY,change yourColumnName yourColumnName data type;

為了理解上述語法,讓我們建立一個表。建立表的查詢如下:

mysql> create table removePrimaryKey
   -> (
   -> StudentId int NOT NULL AUTO_INCREMENT,
   -> StudentFirstName varchar(20),
   -> StudentLastName varchar(20),
   -> PRIMARY KEY(StudentId)
   -> );
Query OK, 0 rows affected (0.47 sec)

使用 DESC 命令檢查表的描述。語法如下:

desc yourTableName;

使用 DESC 檢查表“removePrimaryKey”的描述。查詢如下:

mysql> desc removePrimaryKey;

以下是輸出:

+------------------+-------------+------+-----+---------+----------------+
| Field            | Type        | Null | Key | Default | Extra          |
+------------------+-------------+------+-----+---------+----------------+
| StudentId        | int(11)     | NO   | PRI | NULL    | auto_increment |
| StudentFirstName | varchar(20) | YES  |     | NULL    |                |
| StudentLastName  | varchar(20) | YES  |     | NULL    |                |
+------------------+-------------+------+-----+---------+----------------+
3 rows in set (0.01 sec)

現在檢視上面的 Key 和 Extra 列。在 Key 列中,有 PRI,在 Extra 列中,有 auto_increment。您需要使用開頭討論的 ALTER DROP 命令來移除它們:

查詢如下:

mysql> alter table removePrimaryKey DROP PRIMARY KEY,change StudentId StudentId int;
Query OK, 0 rows affected (1.79 sec)
Records − 0 Duplicates − 0 Warnings − 0

我們已經成功移除了主鍵和自增。現在您可以使用以下查詢檢查主鍵和自增是否已從表中移除:

mysql> desc removePrimaryKey;

以下是輸出:

+------------------+-------------+------+-----+---------+-------+
| Field            | Type        | Null | Key | Default | Extra |
+------------------+-------------+------+-----+---------+-------+
| StudentId        | int(11)     | YES  |     | NULL    |       |
| StudentFirstName | varchar(20) | YES  |     | NULL    |       |
| StudentLastName  | varchar(20) | YES  |     | NULL    |       |
+------------------+-------------+------+-----+---------+-------+
3 rows in set (0.07 sec)

更新於: 2019年7月30日

3K+ 瀏覽量

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.