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

เราจะสร้างดัชนี UNIQUE แบบหลายคอลัมน์ได้อย่างไร


สำหรับการสร้างดัชนี UNIQUE แบบหลายคอลัมน์ เราจำเป็นต้องระบุชื่อดัชนีมากกว่าหนึ่งคอลัมน์ ตัวอย่างต่อไปนี้จะสร้างดัชนีหลายคอลัมน์ชื่อ 'id_fname_lname' ในคอลัมน์ 'empid', 'first_name', 'last_name' ของตาราง 'employee' -

mysql> Create UNIQUE INDEX id_fname_lname on employee(empid,first_name,last_name);
Query OK, 0 rows affected (0.41 sec)
Records: 0 Duplicates: 0 Warnings: 0

mysql> describe employee;
+------------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+------------+-------------+------+-----+---------+-------+
| empid | int(11) | YES | MUL | NULL | |
| first_name | varchar(20) | YES | | NULL | |
| last_name | varchar(20) | YES | | NULL | |
+------------+-------------+------+-----+---------+-------+
3 rows in set (0.12 sec)

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

mysql> Show index from employee\G
*************************** 1. row ***************************
Table: employee
Non_unique: 0
Key_name: id_fname_lname
Seq_in_index: 1
Column_name: empid
Collation: A
Cardinality: 0
Sub_part: NULL
Packed: NULL
Null: YES
Index_type: BTREE
Comment:
Index_comment:
*************************** 2. row ***************************
Table: employee
Non_unique: 0
Key_name: id_fname_lname
Seq_in_index: 2
Column_name: first_name
Collation: A
Cardinality: 0
Sub_part: NULL
Packed: NULL
Null: YES
Index_type: BTREE
Comment:
Index_comment:
*************************** 3. row ***************************
Table: employee
Non_unique: 0
Key_name: id_fname_lname
Seq_in_index: 3
Column_name: last_name
Collation: A
Cardinality: 0
Sub_part: NULL
Packed: NULL
Null: YES
Index_type: BTREE
Comment:
Index_comment:
3 rows in set (0.00 sec)

เราสามารถสังเกตได้จากชุดผลลัพธ์ข้างต้นว่าค่าใน 'key_name' ที่จัดเก็บไว้นั้นเหมือนกัน เพราะเราได้สร้างดัชนีแบบหลายคอลัมน์ขึ้นในทุกคอลัมน์ของตาราง