การลบ UNIQUE Constraint เพื่ออนุญาตค่าซ้ำในคอลัมน์ VARCHAR
คอลัมน์ที่มี UNIQUE KEY ไม่อนุญาตค่าซ้ำ หากต้องการอนุญาตให้ซ้ำได้ ต้องลบ Unique Index/Constraint ก่อน
สร้างตารางพร้อม UNIQUE KEY
mysql> create table DemoTable1409 (
-> FirstName varchar(20),
-> UNIQUE KEY UN_FirstName(FirstName)
-> );
Query OK, 0 rows affected (0.79 sec)
ลบ Unique Index
mysql> alter table DemoTable1409 drop index UN_FirstName; Query OK, 0 rows affected (0.40 sec) Records: 0 Duplicates: 0 Warnings: 0
ทดสอบ INSERT ค่าซ้ำ
mysql> insert into DemoTable1409 values('Chris');
Query OK, 1 row affected (0.18 sec)
mysql> insert into DemoTable1409 values('Chris'); -- ไม่ error แล้ว
Query OK, 1 row affected (0.11 sec)
mysql> insert into DemoTable1409 values('David');
Query OK, 1 row affected (0.09 sec)
ข้อมูลในตาราง (มี Chris 2 ครั้ง)
+-----------+ | FirstName | +-----------+ | Chris | | Chris | | David | +-----------+
คำสั่งที่เกี่ยวข้องกับ Unique Constraint
| คำสั่ง | คำอธิบาย |
|---|---|
ALTER TABLE t DROP INDEX idx_name | ลบ index (รวม unique index) |
ALTER TABLE t DROP CONSTRAINT constraint_name | ลบ constraint (MySQL 8.0+) |
SHOW INDEX FROM t | ดู index ทั้งหมด (Non_unique=0 = unique) |
CREATE UNIQUE INDEX idx ON t(col) | เพิ่ม unique index ใหม่ |