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

Preventing Duplicates with UNIQUE منع التكرار بقيد UNIQUE

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

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

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

يضمن قيد التفرد UNIQUE عدم تكرار أي قيمة غير فارغة داخل العمود (أو مجموعة الأعمدة) على مستوى الجدول بأكمله. وعند محاولة تخزين قيمة موجودة مسبقاً، يوقف محرك InnoDB العملية فوراً بالخطأ القياسي Error 1062 (23000): Duplicate entry for key:

  • تعدد قيود UNIQUE في الجدول الواحد: يمكن للجدول أن يضم عدة أعمدة فريدة مستقلة في آنٍ واحد (مثل اسم المستخدم، والبريد الإلكتروني، والرقم الوطني).
  • إنشاء فهرس B+Tree تلقائياً: ينشئ MySQL خلف الكواليس فهرساً فريداً لكل قيد UNIQUE للتحقق اللحظي من عدم التكرار دون فحص الجدول كاملاً.
مخطط يوضح قيد UNIQUE المفرد والمركّب وسلوك القيم الفارغة NULL في MySQL 8
SQL
CREATE TABLE users (
    username VARCHAR(50) NOT NULL UNIQUE,
    email VARCHAR(150) NOT NULL UNIQUE,
    referral_code VARCHAR(20) NULL UNIQUE
);