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

Expression Defaults in MySQL 8 تعبيرات DEFAULT في MySQL 8

تعلّم قيدا منع الفراغ NOT NULL والقيمة الافتراضية DEFAULT بأسلوب MySQL 8 الحديث مع أمثلة استعلامات SQL وتطبيقات تفاعلية.
1 صفوف تعليمية
MySQL
8 مشاهدة

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

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

قبل الإصدار 8.0.13 لم يكن MySQL يقبل القيم الافتراضية الديناميكية إلا لأعمدة الوقت عبر CURRENT_TIMESTAMP. أما في MySQL 8 الحديث فيمكن لأي عمود استخدام تعبير افتراضي ديناميكي يوضع بين قوسين بالصيغة DEFAULT (...):

  • الطابع الزمني اللحظي CURRENT_TIMESTAMP: يسجل تاريخ ووقت إنشاء الصف تلقائياً.
  • المعرّف العالمي DEFAULT (UUID()): يولّد سلسلة UUID فريدة بطول 36 محرفاً لكل سجل جديد.
  • تهيئة حقول JSON عبر DEFAULT (JSON_OBJECT()): يهيئ عمود JSON بكائن فارغ صالح {}.
SQL
CREATE TABLE session_tokens (
    token_uuid CHAR(36) NOT NULL DEFAULT (UUID()),
    meta_payload JSON NOT NULL DEFAULT (JSON_OBJECT()),
    issued_date DATE NOT NULL DEFAULT (CURRENT_DATE),
    created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP
);