从 MySQL 表中删除唯一键?

mysqlmysqli database

要从 MySQL 中删除唯一键,请使用 DROP 命令。语法如下 −

ALTER TABLE yourTableName DROP INDEX yourKeyName;

为了理解上述语法,让我们创建一个具有唯一键的表。创建表的查询如下 −

mysql> create table DropIndexDemo
   −> (
   −> BookId int unique key,
   −> BookName varchar(200)
   −> );
Query OK, 0 rows affected (0.88 sec)

现在您可以借助 show 命令检查键名。此唯一键将被删除。查询如下 −

mysql> show index from DropIndexDemo;

以下是输出 −

+-----------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+---------+
| Table     | Non_unique | Key_name | Seq_in_index | Column_name | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment | Index_comment | Visible |
+-----------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+---------+
| dropindex | 0          | BookId  | 1             | BookId      | A         | 0           | NULL     | NULL   | YES  | BTREE      |         |               | YES     |
+-----------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+---------+
1 row in set (0.17 sec)

查看上面的示例输出,您的键名称是"BookId"。现在这里是删除唯一键 − 的查询

mysql> alter table DropIndex drop index BookId ;
Query OK, 0 rows affected (0.33 sec)
Records: 0 Duplicates: 0 Warnings: 0

我们已经从 MySQL 表 DropIndex 中删除了唯一键。BookId 列之前有唯一键。

现在借助 desc 命令显示表结构。由于我们已将其删除,因此不会显示唯一键 −

mysql> desc DropIndex;

以下是输出 −

+----------+--------------+------+-----+---------+-------+
| Field    | Type         | Null | Key | Default | Extra |
+----------+--------------+------+-----+---------+-------+
| BookId   | int(11)      | YES  |     | NULL    |       |
| BookName | varchar(200) | YES  |     | NULL    |       |
+----------+--------------+------+-----+---------+-------+
2 rows in set (0.00 sec)

查看上面的示例输出,BookId 列中没有唯一键。


相关文章