2010-07-01 5 views
0

열거 형에없는 값이 해당 필드에 할당 될 때 MySQL 테이블에 기본값을 할당하는 방법이 있습니까?열거 형에없는 값이 할당되었을 때 열거 형의 기본값

CREATE TABLE `comments` (
    `status` enum('approved','moderated','unmoderated') NOT NULL DEFAULT 'unmoderated' 
); 

작품 status 경우는 제작에 정의 된,하지만 당신은 열거 나 NULL에없는 뭔가를 설정하면, 그것은 "났을"(NULL 될 것 같지 않습니다)입니다하지 않습니다. null이 될 수 없으므로 NULL로 설정하면 '비 조정'이 될 것으로 예상됩니다. 그것이 의미가 있는지 확실하지 않습니다. 값이 열거 형에 먼저 있는지 확인하기 위해 삽입하기 전에 데이터를 살균해야합니까?

UPDATE comments SET status = NULL; 
UPDATE comments SET status = 'not_in_there'; 

답변

2

ENUM 필드를 정의 목록에없는 값으로 설정하면 인덱스 0 (빈 문자열)로 삽입됩니다. 해당 열에 대해 값이 지정되지 않은 경우에만 기본값이 적용됩니다.

코드에서 잘못된 값을 먼저 확인한 다음 원하는 값을 쿼리에 포함시켜야합니다.

관련 문제