여러 열의 UNIQUE 인덱스를 만들려면 둘 이상의 열에 인덱스 이름을 지정해야 합니다. 다음 예는 'employee' 테이블의 'empid', 'first_name', 'last_name' 열에 'id_fname_lname'이라는 다중 열 인덱스를 생성합니다. −
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' 필드의 값이 동일함을 알 수 있습니다.