집 >데이터 베이스 >MySQL 튜토리얼 >데이터베이스 테이블의 Null 허용 열에 고유 제약 조건을 적용하는 방법은 무엇입니까?
null 허용 열이 포함된 테이블에 고유 제약 조건 적용
이 문서에서는 Null 허용 열이 포함된 테이블에 고유 제약 조건을 만드는 문제에 대해 설명합니다. 목표는 Null 허용 열이 Null인 경우에도 여러 행이 동일한 값 조합을 갖지 않도록 하는 것입니다.
질문:
제공된 테이블 스키마에는 null을 허용하는 UserRepository 열이 있습니다. 그러나 사용자는 UserId 및 RecipeId의 각 쌍에 대해 MenuId 값에 관계없이 하나의 행만 존재하는지 확인하려고 합니다.
정답:
PostgreSQL 15 이상:
<code class="language-sql">ALTER TABLE Favorites ADD CONSTRAINT Favorites_UniqueFavorite UNIQUE NULLS NOT DISTINCT (UserId, MenuId, RecipeId);</code>
PostgreSQL 14 이하:
<code class="language-sql">CREATE UNIQUE INDEX favo_3col_uni_idx ON Favorites (UserId, MenuId, RecipeId) WHERE MenuId IS NOT NULL; CREATE UNIQUE INDEX favo_2col_uni_idx ON Favorites (UserId, RecipeId) WHERE MenuId IS NULL;</code>
장점:
단점(부분 인덱스만 해당):
대안:
위 내용은 데이터베이스 테이블의 Null 허용 열에 고유 제약 조건을 적용하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!