Để tạo chỉ mục UNIQUE nhiều cột, chúng ta cần chỉ định tên chỉ mục trên nhiều cột. Ví dụ sau sẽ tạo một chỉ mục nhiều cột có tên là ‘id_fname_lname’ trên các cột ‘empid’, ’first_name’, ’last_name’ của bảng ‘nhân viên’ -
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)
Từ tập kết quả của truy vấn trên, chúng ta có thể thấy rằng một chỉ mục nhiều được xác định trên bảng. Quên chi tiết về các chỉ mục, chúng ta có thể chạy truy vấn sau -
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)
Từ tập kết quả trên, chúng ta có thể quan sát thấy rằng giá trị trong ‘key_name’ được gửi là giống nhau vì chúng ta đã tạo chỉ mục đa cột trên tất cả các cột của bảng.