從 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)
廣告