다음과 같은 테이블이 있습니다.
create table my_table (
id int8 not null,
id_A int8 not null,
id_B int8 not null,
id_C int8 null,
constraint pk_my_table primary key (id),
constraint u_constrainte unique (id_A, id_B, id_C)
);
그리고 나는 (id_A, id_B, id_C)
어떤 상황에서도 분명하게 보이고 싶습니다 . 따라서 다음 두 삽입물에 오류가 발생해야합니다.
INSERT INTO my_table VALUES (1, 1, 2, NULL);
INSERT INTO my_table VALUES (2, 1, 2, NULL);
그러나 설명서에 따르면 두 NULL
값이 서로 비교되지 않으므로 두 인서트가 모두 오류없이 전달되므로 예상대로 작동하지 않습니다 .
이 경우 에도 내 고유 제약 조건을 어떻게 보장 id_C
할 수 NULL
있습니까? 실제로, 실제 질문은 "순수한 SQL"에서 이런 종류의 고유성을 보장 할 수 있습니까, 아니면 더 높은 수준에서 구현해야합니까 (필자의 경우 Java)?
(1,2,1)
하고(1,2,2)
에(A,B,C)
열입니다.(1,2,NULL)
추가가 허용 되어야합니까 ?