从 MySQL 表中删除唯一约束?


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

创建表。

mysql> create table UniqueConstraintDemo
   -> (
   -> Name varchar(200) unique
   -> );
Query OK, 0 rows affected (1.05 sec)

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

mysql> DESC UniqueConstraintDemo;

以下是输出。

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

现在,我们在列“Name”上设置了唯一约束。因此,我们不能添加重复值。如果我们尝试插入相同的值两次,则会收到错误。插入记录的查询如下所示。

mysql> insert into UniqueConstraintDemo values('John');
Query OK, 1 row affected (0.54 sec)

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

查看上面的错误 1062。它表示我们尝试向具有唯一约束的列添加重复值。

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

DROP index yourColumnName on yourTableName;

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

mysql> DROP index Name on UniqueConstraintDemo;
Query OK, 0 rows affected (0.39 sec)
Records: 0  Duplicates: 0  Warnings: 0

现在,我们可以借助 DESC 命令检查唯一约束是否已删除。查询如下所示 -

mysql> DESC UniqueConstraintDemo;

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

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

更新于: 2019-07-30

383 次查看

开启你的 职业生涯

通过完成课程获得认证

开始
广告