Aşağıdaki gibi bir tablo var:
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)
);
Ve (id_A, id_B, id_C)her durumda farklı olmak istiyorum . Bu nedenle, aşağıdaki iki ek bir hatayla sonuçlanmalıdır:
INSERT INTO my_table VALUES (1, 1, 2, NULL);
INSERT INTO my_table VALUES (2, 1, 2, NULL);
Ancak, beklendiği gibi davranmaz, çünkü belgelere göre, iki NULLdeğer birbiriyle karşılaştırılmaz, bu nedenle her iki uç da hatasız geçer.
Bu durumda olsa bile id_C, benzersiz kısıtlamamı nasıl garanti edebilirim NULL? Aslında asıl soru şudur: "saf sql" de bu tür benzersizliği garanti edebilir miyim veya daha yüksek bir düzeyde uygulamak zorunda mıyım (benim durumumda java)?
(1,2,1)ve(1,2,2)içinde(A,B,C)sütunlar. Eklenmeye(1,2,NULL)izin verilmeli mi veya edilmemeli mi?