从 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)
广告