>데이터 베이스 >MySQL 튜토리얼 >MySQL은 고유 제약 조건과 Null 값을 어떻게 처리합니까?

MySQL은 고유 제약 조건과 Null 값을 어떻게 처리합니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-12-22 19:13:10159검색

How Does MySQL Handle Unique Constraints and Null Values?

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.