MySQL의 고유 제약 조건 및 Null 값
데이터베이스 설계에서는 고유 제약 조건을 사용하여 특정 열 또는 열 집합이 테이블에는 고유한 값만 포함됩니다. 그러나 고유 제약 조건이 있는 열에 Null 값을 허용하는 것이 바람직한 경우도 있습니다. MySQL에서는 이것이 실제로 가능합니다.
MySQL에서는 고유 제약 조건이 있는 열에 여러 행이 null 값을 가질 수 있습니다. 이는 제약 조건을 위반하지 않고도 열에 중복된 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;
위 문을 실행할 때, MySQL은 테이블에 세 개의 행을 삽입합니다. 첫 번째 insert 문은 'x' 값이 고유하므로(1) 성공합니다. 두 번째 insert 문은 'x'(1) 값이 이미 존재하고 고유 제약 조건을 위반하기 때문에 실패합니다. 그러나 세 번째 및 네 번째 insert 문은 'x' 값이 null(MySQL의 고유 제약 조건에 따라 허용됨)이기 때문에 성공합니다.
SELECT 문의 결과에는 다음 행이 표시됩니다.
x NULL NULL 1
이 동작은 MySQL에만 해당된다는 점에 유의하는 것이 중요합니다. SQL Server 2005 이하 버전과 같은 다른 데이터베이스에서는 고유 제약 조건이 있는 열에 여러 개의 Null 값을 허용하지 않습니다. 이러한 시나리오에서는 일반적으로 단일 null 값만 허용됩니다.
위 내용은 MySQL은 고유 제약 조건과 Null 값을 어떻게 처리합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!