从 MySQL 表中删除唯一约束?
mysqlmysqli database
首先,让我们创建一个具有 UNIQUE 约束的表。它表明我们不能添加重复值。
创建表。
mysql> create table UniqueConstraintDemo -> ( -> Name varchar(200) unique -> ); Query OK, 0 rows affected (1.05 sec)
现在,我们可以借助 DESC 命令检查表是否具有 UNIQUE 约束。查询如下。
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。它表明我们尝试向具有 UNIQUE 约束的列添加重复值。
现在让我们看看删除 UNIQUE 约束的语法。
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 命令检查 UNIQUE 约束是否已被删除。查询如下 −
mysql> DESC UniqueConstraintDemo;
以下是显示我们已成功删除 UNIQUE 约束的输出。
+-------+--------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------+--------------+------+-----+---------+-------+ | Name | varchar(200) | YES | | NULL | | +-------+--------------+------+-----+---------+-------+ 1 row in set (0.00 sec)