আমার নীচের মত একটি টেবিল আছে:
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
এই ক্ষেত্রে? আসলে, আসল প্রশ্নটি: আমি কি এই ধরণের স্বতন্ত্রতার জন্য "খাঁটি এসকিএল" এর গ্যারান্টি দিতে পারি বা এটি কি উচ্চতর স্তরে প্রয়োগ করতে হবে (আমার ক্ষেত্রে জাভা)?
(1,2,1)
এবং(1,2,2)
এ(A,B,C)
কলাম। একটি(1,2,NULL)
যোগ করার অনুমতি দেওয়া উচিত বা না?