เมื่อเพิ่ม UNIQUE constraint บนคอลัมน์เดียวกันหลายครั้ง MySQL จะสร้างดัชนี (index) บนคอลัมน์นั้นตามจำนวนครั้งที่เพิ่ม UNIQUE constraint
ตัวอย่าง
สมมติว่ามีตาราง 'employee' ที่มี UNIQUE constraint บนคอลัมน์ 'empid':
mysql> Describe employee; +------------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +------------+-------------+------+-----+---------+-------+ | empid | int(11) | YES | UNI | NULL | | | first_name | varchar(20) | YES | | NULL | | | last_name | varchar(20) | YES | | NULL | | +------------+-------------+------+-----+---------+-------+
รัน SHOW INDEX พบดัชนีเดียวบน 'empid':
mysql> Show index from employee\G; *************************** 1. row *************************** Table: employee Non_unique: 0 Key_name: empid Seq_in_index: 1 Column_name: empid Collation: A Cardinality: 0 Sub_part: NULL Packed: NULL Null: YES Index_type: BTREE
เพิ่ม UNIQUE constraint อีกครั้งบน 'empid':
mysql> ALTER TABLE employee ADD UNIQUE(empid); Query OK, 0 rows affected (0.21 sec)
SHOW Index อีกครั้ง พบดัชนี 2 ตัว: 'empid' และ 'empid_2':
mysql> Show index from employee\G; *************************** 1. row *************************** Key_name: empid *************************** 2. row *************************** Key_name: empid_2
เพิ่ม UNIQUE constraint อีกครั้ง:
mysql> ALTER TABLE employee ADD UNIQUE(empid); Query OK, 0 rows affected (0.30 sec)
SHOW Index พบดัชนี 3 ตัว: 'empid', 'empid_2', 'empid_3'
สรุป: MySQL จะสร้าง unique indexes บนคอลัมน์ตามจำนวนครั้งที่เพิ่ม UNIQUE constraint