데이터베이스 테이블을 하나의 레코드만 소유할 수 있도록 제한하는 제약 조건을 어떻게 구현합니까? 특정 "isDefault" 필드 값이 1인가요? 제약 조건은 "FormID" 필드로 식별되는 레코드의 하위 집합에 적용됩니다.
SQL Server 2008 이상은 고유 필터링을 사용하는 솔루션을 제공합니다. 인덱스:
CREATE UNIQUE INDEX IX_TableName_FormID_isDefault ON TableName(FormID) WHERE isDefault = 1
다음 표를 고려하세요. 구조:
CREATE TABLE TableName( FormID INT NOT NULL, isDefault BIT NOT NULL )
"FormID" 및 "isDefault"가 1로 동일한 여러 레코드를 삽입하면 다음 오류가 발생합니다.
Cannot insert duplicate key row in object 'dbo.TableName' with unique index 'IX_TableName_FormID_isDefault'. The duplicate key value is (1).
이 오류는 제약 조건을 효과적으로 적용하여 다음을 보장합니다. "FormID"당 하나의 레코드만 "isDefault"를 1로 설정할 수 있습니다.
(출처: https://technet.microsoft.com/en-us/library/cc280372.aspx)
위 내용은 SQL Server 테이블의 FormID당 하나의 레코드만 isDefault = 1인지 확인하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!