انتقل إلى محتوى الدرس

How UNIQUE Handles NULL سلوك قيد UNIQUE مع NULL

تعلّم قيد التفرد UNIQUE ومنع تكرار القيم في MySQL بأسلوب MySQL 8 الحديث مع أمثلة استعلامات SQL وتطبيقات تفاعلية.
1 صفوف تعليمية
MySQL
7 مشاهدة

شرح صفوف ومحتوى الفقرة

الصف 1 شرح توضيحي

في معيار SQL القياسي ومحرك InnoDB، تمثل NULL قيمة غير معروفة، ولذلك لا تتساوى قيمتا NULL أبداً عند المقارنة. ونتيجةً لذلك يسمح عمود UNIQUE القابل للفراغ بتخزين عدة صفوف تحمل القيمة NULL بينما يمنع تكرار أي قيمة نصية أو رقمية فعلية:

  • إذا كان الحقل إلزامياً وفريداً (مثل البريد الإلكتروني)، اجمع دائماً بين NOT NULL UNIQUE.
  • إذا كان الحقل اختيارياً لكنه لا يقبل التكرار عند إدخاله (مثل الرقم الضريبي الاختياري)، استخدم NULL UNIQUE.
SQL
CREATE TABLE customer_profiles (
    email VARCHAR(150) NOT NULL,
    tax_number VARCHAR(30) NULL,
    CONSTRAINT uq_profile_email UNIQUE (email),
    CONSTRAINT uq_profile_tax UNIQUE (tax_number)
);