bskyvision RSS 태그 관리 글쓰기 방명록
2021-03-25 10:38:52
728x90

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 데이터 타입은 값의 입력을 특정 몇 개의 값들로 제한하고 싶을 때 사용할 수 있습니다. 

댓글

방문해주신 모든 분들을 환영합니다.

* 글을 읽던 중에 궁금했던 부분은 질문해주세요.

* 칭찬, 지적, 의문, 격려, 감사표현 등을 남겨주세요.

* 최대한 답변 드리도록 노력하겠습니다.

* 욕설과 광고를 담은 댓글은 가차없이 삭제합니다.


guest@이름 ~$
guest@패스워드 ~$
guest@홈페이지주소작성 ~$

guest@댓글작성 ~$




bskyvision. Designed by bskyvision.