내 테이블 스키마에 대한 최대의 하나입니다SQL : 제약 조건 중 하나 이상을 적용 && 각 키
r(int aID not null, int bID not null, bool main)
기본 키 (AID, BID). aID와 bID는 모두 외래 키 (다른 테이블 참조)입니다.
내가 모든 원조를 위해 그 시행 할 항상 하나 것도 사실 = 주요 하나 개에만 입찰이있다.
내가 점에서 데시벨 레벨을 할 수 있습니까? constraint unique (aID, main)
을 추가하여 "최대 1"을 시행 할 수 있으며 main은 true 또는 NULL입니다.
방법 "적어도 1"부분은 어떻습니까?
PS : MySQL의에서 작업.
편집 : 설명을위한 예제 데이터 : aID와 bID의 다양한 조합을 가질 수 있지만 각 aID에는 하나의 조합 만 main = true이어야합니다. 데모 데이터 :
1, 2, true
1, 3, NULL
1, 4, NULL
1, 5, true <- wrong, only one main=true
...
아마 내가 올바르게 설명하지 않았으므로 업데이트 된 원본 게시물을 참조하십시오. 고맙습니다! –
나는 내 대답을 편집 할 것이고, 두 번째 버전은 더 도움이 될 것입니다, 적어도 그렇게되기를 바랍니다. –