동일한 열에 UNIQUE 제약 조건을 여러 번 추가하면 MySQL은 UNIQUE 제약 조건을 추가한 횟수만큼 해당 열에 인덱스를 생성합니다.
"empid" 열에 UNIQUE 제약 조건이 있는 "employee" 테이블이 있다고 가정합니다. 이는 다음 쿼리로 확인할 수 있습니다. -
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 | | +------------+-------------+------+-----+---------+-------+ 3 rows in set (0.12 sec)
이제 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 Comment: Index_comment: 1 row in set (0.00 sec)
다음 쿼리의 도움으로 동일한 열 "empid"에 또 다른 UNIQUE 제약 조건을 추가했습니다. -
mysql> Alter table employee ADD UNIQUE(empid); Query OK, 0 rows affected (0.21 sec) Records: 0 Duplicates: 0 Warnings: 0
이제 SHOW INDEX 쿼리를 실행하면 인덱스 이름, 즉 "empid"가 제공됩니다. 해당 열에 두 개의 인덱스 "empid" 및 "empid_2"가 생성됩니다.
mysql> Show index from employee12\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 Comment: Index_comment: *************************** 2. row *************************** Table: employee Non_unique: 0 Key_name: empid_2 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 rows in set (0.00 sec)
다음 쿼리의 도움으로 동일한 "empid" 열에 또 다른 UNIQUE 제약 조건을 추가했습니다. -
mysql> Alter table employee ADD UNIQUE(empid); Query OK, 0 rows affected (0.21 sec) Records: 0 Duplicates: 0 Warnings: 0
이제 SHOW INDEX 쿼리를 실행하면 "열에 인덱스 이름이 제공됩니다. empid" 세 개의 인덱스 "empid", "empid_2" 및 "empid_3"이 "에 생성되었습니다.
mysql> Alter table employee ADD UNIQUE(empid); Query OK, 0 rows affected (0.30 sec) Records: 0 Duplicates: 0 Warnings: 0 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 Comment: Index_comment: *************************** 2. row *************************** Table: employee Non_unique: 0 Key_name: empid_2 Seq_in_index: 1 Column_name: empid 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: empid_3 Seq_in_index: 1 Column_name: empid Collation: A Cardinality: 0 Sub_part: NULL Packed: NULL Null: YES Index_type: BTREE Comment: Index_comment: 3 rows in set (0.00 sec)
이런 의미에서 MySQL은 해당 열에 UNIQUE 제약 조건을 추가하는 횟수만큼 해당 열에 고유 인덱스를 생성한다고 말할 수 있습니다.
위 내용은 동일한 열에 UNIQUE 제약 조건을 여러 번 추가하면 어떻게 되나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!