لجعل قيمة العمود مطلوبة وغير مكررة، يمكن الجمع بين NOT NULL وUNIQUE. يمنع NOT NULL تخزين NULL، بينما يمنع UNIQUE تكرار القيم غير NULL وفق قواعد المقارنة الخاصة بالعمود. كل قيد يعالج جانبًا مختلفًا من صحة البيانات، لذلك لا يكفي أحدهما وحده لتحقيق الشرطين معًا في عمود عادي.
في MySQL، يمكن لعمود UNIQUE قابل لقبول NULL أن يحتوي على عدة صفوف تحمل NULL. لذلك فإن تعريف رمز كتاب باستخدام UNIQUE وحدها لا يجعل إدخال الرمز إلزاميًا. وبالمقابل، يسمح NOT NULL وحده بتكرار الرمز نفسه. كذلك لا يمنع NOT NULL النص الفارغ، لأن النص الفارغ قيمة موجودة تختلف عن NULL. ينبغي صياغة متطلبات البيانات بدقة قبل اختيار القيود المناسبة.
مثال
CREATE TABLE books_constraints_example (
id INT PRIMARY KEY,
code VARCHAR(20) NOT NULL UNIQUE
);
INSERT INTO books_constraints_example VALUES (1, 'BK-101');
باختصار: اجمع NOT NULL وUNIQUE لمنع NULL والتكرار في العمود نفسه.
هل تريد تعلّم SQL خطوة بخطوة مع تمارين عملية؟ تابع مسار SQL من الأساسيات للاحتراف.