從 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 次檢視

開啟你的 職業生涯

透過完成課程獲得認證

開始
廣告