enum이라는 데이터 타입은 조금 독특합니다. 어떤 컬럼의 데이터 타입이 만약 enum이라면 컬럼 정의시 열거된 값들만 입력이 가능해집니다.
예를 들기 위해 우선 다음과 같은 테이블을 생성했습니다.
CREATE TABLE person (
id tinyint(1) NOT NULL AUTO_INCREMENT,
name char(4) NOT NULL,
favorite_color enum('파랑', '빨강', '초록') NOT NULL,
PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
여기서 favorite_color라는 이름의 컬럼의 데이터 타입은 enum으로 되어 있습니다. 그 안에는 '파랑', '빨강', '초록'이 담겨 있습니다. 이 뜻은 favorite_color 컬럼은 저 셋의 입력만 허용한다는 뜻입니다. 만약 '검정', '노랑'과 같이 열거되어 있지 않은 값을 넣으면 에러가 뜹니다.
보시다시피 파랑, 빨강, 초록은 문제없이 입력되었는데, 노랑을 입력하려고 하자 error가 떴습니다.
ERROR 1265 (01000): Data truncated for column 'favorite_color' at row 1
person 테이블을 조회해보니 에러가 떴던 마지막 쿼리는 역시 반영되지 않았습니다.
이처럼 enum 데이터 타입은 값의 입력을 특정 몇 개의 값들로 제한하고 싶을 때 사용할 수 있습니다.
'DB > SQL' 카테고리의 다른 글
MySQL workbench에서 select로 조회했는데 row들이 잘 안 보일 때 (0) | 2021.05.14 |
---|---|
[MariaDB] 스토어드 프로시저 사용법 및 사용이유 (3) | 2021.05.01 |
MySQL workbench에서 delete 안 될 때 해결방법 (error code: 1175) (0) | 2021.04.23 |
[sqlite3] 윈도우 10에 sqlite3 설치 및 환경변수 path 설정하기 (0) | 2021.04.17 |
[sqlite3] JOIN으로 서로 다른 테이블의 컬럼들 붙이기(내부 조인, 외부 조인) (0) | 2021.03.19 |
[sqlite3] 정수를 정수로 나눴을 때 소수점 이하도 출력되게 하려면 (0) | 2021.03.16 |
[MariaDB] LIKE를 사용하여 특정 문자열 검색하기 (0) | 2021.01.13 |
[MariaDB] GROUP BY 사용 예제(+ HAVING) (0) | 2021.01.12 |