집 >데이터 베이스 >MySQL 튜토리얼 >SQL Server에서 NULL 값을 허용하는 열에 고유 인덱스를 어떻게 만들 수 있습니까?
Null 열에 고유 인덱스 생성
NULL 값을 허용하는 열에는 고유 제약 조건을 적용할 수 없다는 일반적인 오해에도 불구하고 실제로 방법이 있습니다. SQL Server에서 이를 달성하려면 2005.
접근 방식 1: 고유 인덱스가 있는 보기
질문에 언급된 접근 방식은 뷰를 활용하여 NULL을 제외하고 해당 뷰에 고유 인덱스를 생성하는 것입니다. 이 솔루션은 효과적이지만 복잡성과 성능 오버헤드를 추가합니다.
접근 방식 2: 필터링된 인덱스(SQL Server 2008)
SQL Server 2008을 도입하면 필터링된 인덱스를 사용하여 다음을 지정할 수 있습니다. 인덱스를 생성할 때 WHERE 절. 이를 통해 NULL을 포함할 수 있는 열에 고유 인덱스를 생성할 수 있습니다.
구문:
CREATE UNIQUE INDEX AK_MyTable_Column1 ON MyTable (Column1) WHERE Column1 IS NOT NULL
접근 방식 3: 트리거 기반 적용
또 다른 대안은 행이 삽입되거나 업데이트될 때마다 고유성을 확인하는 트리거를 구현하는 것입니다. 그러나 트리거는 특히 삽입/업데이트 비율이 높은 테이블에서 성능에 영향을 미칠 수 있습니다.
구현:
CREATE TRIGGER MyTable_TRG_Unique ON MyTable AFTER INSERT OR UPDATE AS BEGIN IF EXISTS(SELECT 1 FROM MyTable WHERE Column1 = (SELECT Column1 FROM INSERTED)) BEGIN RAISERROR('Column1 must be unique.', 16, 1); -- Handle error as needed END END
특정 요구 사항 및 성능 제약 조건을 기반으로 각 접근 방식의 장단점을 고려하세요. 귀하의 신청서를 확인하세요.
위 내용은 SQL Server에서 NULL 값을 허용하는 열에 고유 인덱스를 어떻게 만들 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!