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