Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

เราจะลดข้อจำกัด UNIQUE จากตาราง MySQL ได้อย่างไร


สำหรับการลบข้อจำกัด UNIQUE จากตาราง MySQL อันดับแรก เราต้องตรวจสอบชื่อของดัชนีที่สร้างโดยข้อจำกัด UNIQUE บนโต๊ะ ดังที่เราทราบแล้วว่าคำสั่ง SHOW INDEX ใช้เพื่อจุดประสงค์นี้ 'key_name ’ ในชุดผลลัพธ์ของคำสั่ง SHOW INDEX มีชื่อของดัชนี ตอนนี้ด้วยความช่วยเหลือของ DROP INDEX คำสั่งหรือ แก้ไขตาราง คำสั่ง เราสามารถยกเลิกข้อจำกัด UNIQUE ไวยากรณ์สำหรับคำสั่งทั้งสองมีดังนี้ −

ไวยากรณ์

DROP INDEX index_name ON table_name;
OR
ALTER TABLE table_name DROP INDEX index_name;

ตัวอย่าง

สมมติว่าเรามีตาราง 'epl' ซึ่งมีข้อจำกัดที่ไม่ซ้ำใครในคอลัมน์ 'empno' สามารถตรวจสอบชื่อดัชนีได้ดังนี้ −

mysql> Show Index from empl\G
*************************** 1. row ***************************
Table: empl
Non_unique: 0
Key_name: empno
Seq_in_index: 1
Column_name: empno
Collation: A
Cardinality: 0
Sub_part: NULL
Packed: NULL
Null: YES
Index_type: BTREE
Comment:
Index_comment:
1 row in set (0.02 sec)

ตอนนี้เพื่อทิ้งข้อจำกัด UNIQUE เราสามารถเขียนแบบสอบถามต่อไปนี้ -

mysql> ALTER TABLE empl DROP INDEX empno;
Query OK, 0 rows affected (0.26 sec)
Records: 0 Duplicates: 0 Warnings: 0

ชุดผลลัพธ์ของแบบสอบถามด้านล่างจะแสดงให้เห็นว่าไม่มีข้อจำกัด UNIQUE ในคอลัมน์ 'empno' -

mysql> describe empl;

+--------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+--------+-------------+------+-----+---------+-------+
| empno | int(11) | YES | | NULL | |
| F_name | varchar(20) | YES | | NULL | |
+--------+-------------+------+-----+---------+-------+

2 rows in set (0.04 sec)

แม้ว่าเราจะเรียกใช้ SHOW INDEX จาก epl แบบสอบถามแล้ว MySQL จะส่งผลให้ชุดว่างดังนี้ -

mysql> Show index from empl;
Empty set (0.00 sec)

ข้อจำกัด UNIQUE สามารถลบออกจากตาราง 'epl' โดยใช้คำสั่ง DROP INDEX ได้ดังนี้ -

mysql> DROP INDEX empno on empl;
Query OK, 0 rows affected (0.17 sec)
Records: 0 Duplicates: 0 Warnings: 0