Audit Logging and Validation SIGNALالتدقيق التلقائي ورفع SIGNAL
تعلّم المشغلات التلقائية Triggers والأحداث المجدولة Events في MySQL بأسلوب MySQL 8 الحديث مع أمثلة استعلامات SQL وتطبيقات تفاعلية.
1 صفوف تعليمية
MySQL
7 مشاهدة
شرح صفوف ومحتوى الفقرة
الصف 1
شرح توضيحي
إلى جانب تنقية البيانات وتسجيل التدقيق، تُستخدم مشغلات BEFORE لفرض قواعد التحقق المركبة التي تتجاوز قدرات قيود CHECK العادية. عندما يكتشف المشغل قيمة مخالفة لقواعد العمل (مثل محاولة خفض سعر طلب مدفوع أو إدخال كمية سالبة)، يمكنه إيقاف العملية بالكامل وإرجاع رسالة خطأ واضحة للتطبيق باستخدام جملة SIGNAL SQLSTATE '45000'.
الرمز القياسي '45000' مخصص في معيار SQL للأخطاء المعرَّفة من قِبل المستخدم (Unhandled User-Defined Exception)، وتحدد الخاصية MESSAGE_TEXT نص الرسالة التوضيحية التي ستظهر للمطور أو تُلتقط في كود التطبيق، مما يلغي تعديل الصف تلقائياً ويحافظ على سلامة الجدول.
</>SQL
DELIMITER $$
CREATE TRIGGER trg_orders_validate_amount
BEFORE UPDATE ON orders
FOR EACH ROW
BEGIN
IF NEW.amount < 0.00 THEN
SIGNAL SQLSTATE '45000'
SET MESSAGE_TEXT = 'Order amount cannot be negative';
END IF;
END$$
DELIMITER ;
جميع فقرات هذا الدرس (المشغلات التلقائية Triggers والأحداث المجدولة Events في MySQL)