شرح صفوف ومحتوى الفقرة
في معيار 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)
);