MySQL은 고유 제약 조건에서 null 값을 무시합니까?
고유하고 싶은 이메일 열이 있습니다. 그러나 null 값을 허용하기를 원합니다. 내 데이터베이스에 그런 방식으로 2 개의 null 이메일이있을 수 있습니까?
예, MySQL은 고유 제약 조건이있는 열에서 여러 NULL을 허용합니다.
CREATE TABLE table1 (x INT NULL UNIQUE);
INSERT table1 VALUES (1);
INSERT table1 VALUES (1); -- Duplicate entry '1' for key 'x'
INSERT table1 VALUES (NULL);
INSERT table1 VALUES (NULL);
SELECT * FROM table1;
결과:
x
NULL
NULL
1
모든 데이터베이스에 적용되는 것은 아닙니다. 예를 들어 SQL Server 2005 및 이전 버전은 고유 제약 조건이있는 열에 단일 NULL 값만 허용합니다.
에서 워드 프로세서 :
"UNIQUE 인덱스는 NULL을 포함 할 수있는 열에 대해 여러 개의 NULL 값을 허용합니다"
이것은 BDB 이외의 모든 엔진에 적용됩니다 .
저자가 원래 이것이 중복 값을 허용하는지 여부를 묻는 지 또는 여기에 " NULL
사용하는 동안 중복 값 을 허용하는 방법 UNIQUE
?"을 암시하는 질문이 있는지 확실하지 않습니다. 또는 "하나의 UNIQUE
NULL
값만 허용하는 방법 "
질문에 이미 답변되었으므로 인덱스 NULL
를 사용하는 동안 중복 값을 가질 수 있습니다 UNIQUE
.
"하나의 UNIQUE
NULL
가치 를 허용하는 방법"을 검색하는 동안이 답변을 발견했습니다 . 같은 일을 하면서이 질문에 걸려 넘어 질 수있는 다른 사람들을 위해, 나머지 대답은 당신을위한 것입니다 ...
MySQL에서는 하나의 UNIQUE
NULL
값을 가질 수 없지만 UNIQUE
빈 문자열 값을 삽입하여 하나의 빈 값을 가질 수 있습니다 .
경고 : 숫자 및 문자열 이외의 유형은 기본값이 0이거나 다른 기본값 일 수 있습니다.
널 입력 가능 고유 제한 조건을 피하십시오. 열을 항상 새 테이블에 넣고 널이 아닌 고유 한 값으로 만든 다음 값이있을 때만 해당 테이블을 채울 수 있습니다. 이를 통해 열에 대한 모든 키 종속성을 올바르게 적용하고 널 (null)로 인해 발생할 수있는 문제점을 피할 수 있습니다.
참고 URL : https://stackoverflow.com/questions/3712222/does-mysql-ignore-null-values-on-unique-constraints
'Programing' 카테고리의 다른 글
커스텀 클래스 타입을 키로 사용하는 C ++ unorder_map (0) | 2020.04.04 |
---|---|
Excel에서 텍스트 URL 열을 활성 하이퍼 링크로 변환하는 방법 (0) | 2020.04.04 |
필요한 'using'문을 자동으로 추가하는 Visual Studio 키보드 단축키 (0) | 2020.04.04 |
HttpContent.ReadAsAsync는 어디에 있습니까? (0) | 2020.04.04 |
Bash 함수의 반환 값 (0) | 2020.04.04 |