要从MySQL表中删除UNIQUE约束,首先,我们必须检查表上UNIQUE约束创建的索引的名称。我们知道SHOW INDEX语句用于此目的。SHOW INDEX语句的结果集中的'key_name'包含索引的名称。现在,可以使用DROP INDEX语句或ALTER TABLE语句来删除UNIQUE约束。两个语句的语法如下:
DROP INDEX index_name ON table_name; OR ALTER TABLE table_name DROP INDEX index_name;
假设我们有一个名为‘empl’的表,该表在列‘empno’上有一个唯一约束。可以通过以下方式检查索引名称 −
mysql> Show Index from empl\G *************************** 1. row *************************** Table: empl Non_unique: 0 Key_name: empno Seq_in_index: 1 Column_name: empno Collation: A Cardinality: 0 Sub_part: NULL Packed: NULL Null: YES Index_type: BTREE Comment: Index_comment: 1 row in set (0.02 sec)
现在,如果要删除唯一约束,我们可以编写以下查询 −
mysql> ALTER TABLE empl DROP INDEX empno; Query OK, 0 rows affected (0.26 sec) Records: 0 Duplicates: 0 Warnings: 0
以下查询的结果集将显示列'empno'上没有唯一约束 −
mysql> describe empl; +--------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +--------+-------------+------+-----+---------+-------+ | empno | int(11) | YES | | NULL | | | F_name | varchar(20) | YES | | NULL | | +--------+-------------+------+-----+---------+-------+ 2 rows in set (0.04 sec)
即使我们运行从empl查询中显示索引,MySQL也会返回一个空集,如下所示−
mysql> Show index from empl; Empty set (0.00 sec)
使用DROP INDEX语句可以从'empl'表中删除UNIQUE约束,如下所示:
mysql> DROP INDEX empno on empl; Query OK, 0 rows affected (0.17 sec) Records: 0 Duplicates: 0 Warnings: 0
以上是我们如何从MySQL表中删除唯一约束?的详细内容。更多信息请关注PHP中文网其他相关文章!