mysql> desc project_participation;
+------------+-------------+------+-----+---------+-------+
| Field      | Type        | Null | Key | Default | Extra |
+------------+-------------+------+-----+---------+-------+
| projectno  | int         | NO   | PRI | NULL    |       |
| empno      | int         | NO   | PRI | NULL    |       |
| start_date | varchar(12) | NO   | PRI | NULL    |       |
| end_date   | varchar(12) | YES  |     | NULL    |       |
| role_id    | int         | YES  | MUL | NULL    |       |
+------------+-------------+------+-----+---------+-------+
5 rows in set (0.01 sec)

mysql 쉘에서 'describe 테이블'을 실행하면 테이블 필드의 정보가 나옵니다. Key에는 세가지 항목이 나올 수 있습니다.

  • PRI: Primary Key. 기본키.
  • UNI: Unique Key. 고유키.
  • MUL: ?

MUL은 뭘까요?

If Key is MUL, the column is the first column of a nonunique index in which multiple occurrences of a given value are permitted within the column.

-- https://dev.mysql.com/doc/refman/8.0/en/show-columns.html

키가 MUL(Multiple)인 경우 논유니크 인덱스(=중복 가능)의 첫번째 컬럼을 나타낸다고 합니다.

보통은 외래키(FK)일거고, 여러 열을 묶어서 Unique 인덱스를 구성한 경우 그 인덱스 자체는 중복이 불가능하지만 인덱스를 구성하는 각각의 컬럼은 중복된 값을 가질 수 있으니 MUL로 출력된다고 하네요.

만약 Key에 PRI, UNI, MUL 여러개에 해당된다면 PRI->UNI->MUL 순의 우선순위로 출력한다고 합니다.

반응형

'DB > MariaDB, MySQL' 카테고리의 다른 글

[MySQL] 서버 타임존 설정 방법  (0) 2020.10.27
InnoDB vs MyISAM  (2) 2020.08.06
MariaDB와 MySQL의 차이  (0) 2020.08.06