[mysql] MySQL에서 빈 값을 허용하는 고유 한 제약

제품 코드를 저장하는 필드가 있습니다. 코드는 고유하지만 일부 제품에는 단순히 코드가 없습니다. 공급자 코드이기 때문에 코드를 발명 할 수 없습니다.

이런 종류의 제약이 MySQL에서 가능합니까?

저는 저장 프로 시저와 트리거를 사용하는 멍청한 사람이므로 솔루션에 이들 중 하나가 포함되어 있으면 잠시 기다려주십시오.

업데이트 : 열이 Null이 아닙니다. 그것이 내가 이것을 할 수 없었던 이유입니다.



답변

예, 할 수 있습니다. MySQL 참조 (버전 5.5)를 참조 하십시오 .

UNIQUE 인덱스는 인덱스의 모든 값이 고유해야하는 제약 조건을 만듭니다. 기존 행과 일치하는 키 값이있는 새 행을 추가하려고하면 오류가 발생합니다. 모든 엔진에 대해 UNIQUE 인덱스는 NULL을 포함 할 수있는 열에 대해 여러 NULL 값을 허용합니다.


답변

예, 제품 코드 열을 null로 설정하면 (로 선언되지 않음 NOT NULL) 고유 키는 NULL제품 코드가있는 여러 행을 허용합니다 .


답변

MySQL은 여전히 ​​여러 행 NULL이 고유 한 열에 값을 가질 수 있도록 허용합니다 .


답변