MySQL ALTER 列删除主键和自动增量?

mysqlmysqli database

您可以使用 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 impacted (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)

相关文章