MySQL은 고유한 제약 조건의 null 값을 무시합니까?
저는 독특해지고 싶은 이메일 컬럼이 있습니다.그러나 null 값도 받아 들이고 싶습니다.데이터베이스에 그런 식으로 두 개의 null e-메일을 보낼 수 있습니까?
예, 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 값만 허용합니다.
문서에서:
"UNIQURE 인덱스는 NULL을 포함할 수 있는 열에 여러 NULL 값을 허용합니다."
이는 BDB를 제외한 모든 엔진에 적용됩니다.
작성자가 원래 중복된 값을 허용하는지 여부를 묻는 것인지 아니면 여기에 "복제 허용 방법"을 묻는 암묵적인 질문이 있는지 확실하지 않습니다.NULL
사용 중인 값UNIQUE
?" 또는 "하나만 허용하는 방법UNIQUE
NULL
가치가 있나요?"
질문에 대한 답변이 이미 완료되었습니다. 예, 중복될 수 있습니다.NULL
사용 중인 값UNIQUE
인덱스를 설정합니다.
'어떻게 하면 허락할 수 있을까'를 찾다가 우연히 이 답을 발견했기 때문이다.UNIQUE
NULL
값어치를 부여합니다.같은 일을 하다가 이 질문을 우연히 발견하게 될 수 있는 다른 사람을 위해, 제 답변의 나머지는 당신을 위한 것입니다.
MySQL에서는 사용할 수 없습니다.UNIQUE
NULL
단, 1개의 값을 가질 수 있습니다.UNIQUE
빈 문자열 값으로 삽입하여 빈 값을 지정합니다.
경고:숫자 및 문자열 이외의 유형은 0 또는 다른 기본값으로 설정할 수 있습니다.
null 가능한 고유 제약 조건을 피하십시오.항상 새 테이블에 열을 넣고 Null이 아닌 고유한 열로 만든 다음 값이 있는 경우에만 해당 테이블을 채울 수 있습니다.이렇게 하면 열에 대한 모든 키 종속성을 올바르게 적용할 수 있으며 null로 인해 발생할 수 있는 문제를 방지할 수 있습니다.
간단한 대답은 다음과 같습니다.No, it doesn't
설명 : 고유 제약조건의 정의에 따름 (SQL-92)
고유한 제약조건은 테이블의 두 행이 고유한 열에 Null이 아닌 동일한 값을 가지지 않는 경우에만 충족됩니다.
이 문장은 다음과 같이 두 가지 해석이 가능합니다.
- 두 행이 동일한 값을 가질 수 없습니다.
NULL
그리고.NULL
허용되지 않습니다. - null이 아닌 두 행은 값을 가질 수 없습니다.
NULL
그리고.NULL
괜찮지만StackOverflow
그리고.StackOverflow
허용되지 않습니다.
MySQL은 두 번째 해석에 따르기 때문에 여러 개NULL
은 은은에에 values values values 、 values values 、 values values values values 。UNIQUE
[제약] 하다 번째, 이 한다면, 이 개념을 이해하려고 노력한다면,NULL
두 개의 SQL이 .NULL
가 안 NULL
SQL에서 사용할 수 없거나 할당되지 않은 값을 나타냅니다(아무것도 없는 값과 비교할 수 없습니다).,NULL
의 값UNIQUE
'하다', '수축하다', '수축하다'의 를 알 수 있습니다.NULL
SQL sql sql sql sql sql 。해서 말씀드리겠습니다.
MySQL은 UNIQURE 제약 조건을 지원하지만 NULL 값을 무시하지는 않습니다.
언급URL : https://stackoverflow.com/questions/3712222/does-mysql-ignore-null-values-on-unique-constraints
'programing' 카테고리의 다른 글
JavaScript에서 문자열을 여러 구분자로 분할하려면 어떻게 해야 합니까? (0) | 2022.09.13 |
---|---|
Vue, i18n, vue-meta는 어떻게 친구를 만들까? (0) | 2022.09.13 |
NULL이 있는 PHP 폼 입력 배열 (0) | 2022.09.13 |
이름 있는 정규 표현식 그룹(?)입니다.pregexp): "P"는 무엇의 약자입니까? (0) | 2022.09.13 |
mariadb 로그는 어디에 있습니까? (0) | 2022.09.13 |