从MySQL表中删除唯一约束?

首先,让我们创建一个具有UNIQUE约束的表。这表明我们不能添加重复的值。

创建一个表。

mysql> create table UniqueConstraintDemo
   -> (
   -> Name varchar(200) unique
   -> );

现在,我们可以借助DESC命令检查表是否具有UNIQUE约束。查询如下。

mysql> DESC UniqueConstraintDemo;

以下是输出。

+-------+--------------+------+-----+---------+-------+
| Field | Type         | Null | Key | Default | Extra |
+-------+--------------+------+-----+---------+-------+
| Name  | varchar(200) | YES  | UNI | NULL    |       |
+-------+--------------+------+-----+---------+-------+
1 row in set (0.00 sec)

现在,我们对“名称”列具有唯一的约束。因此,我们不能添加重复的值。如果我们尝试两次插入相同的值,则将出现错误。查询以插入记录如下。

mysql> insert into UniqueConstraintDemo values('John');

mysql> insert into UniqueConstraintDemo values('John');
ERROR 1062 (23000): Duplicate entry 'John' for key 'Name'

查看上面的错误1062。这表明我们尝试将重复值添加到具有UNIQUE约束的列中。

现在让我们看一下删除UNIQUE约束的语法。

DROP index yourColumnName on yourTableName;

应用上面的语法删除唯一约束。

mysql> DROP index Name on UniqueConstraintDemo;
Records: 0  Duplicates: 0  Warnings: 0

现在,我们可以在DESC命令的帮助下检查UNIQUE约束是否已删除。查询如下-

mysql> DESC UniqueConstraintDemo;

以下是显示我们已成功删除UNIQUE约束的输出。

+-------+--------------+------+-----+---------+-------+
| Field | Type         | Null | Key | Default | Extra |
+-------+--------------+------+-----+---------+-------+
| Name  | varchar(200) | YES  |     | NULL    |       |
+-------+--------------+------+-----+---------+-------+
1 row in set (0.00 sec)