يحافظ ON UPDATE CASCADE على العلاقة عندما تتغير قيمة المفتاح المشار إليه في الجدول الأب. إذا كانت الطلبات تشير إلى معرّف عميل، ثم غيّرنا ذلك المعرّف، ينقل MySQL القيمة الجديدة تلقائيًا إلى أعمدة العلاقة في الطلبات المرتبطة. تبقى الصفوف نفسها موجودة، لكن مراجعها تتوافق مع المعرّف الجديد.
لا يعني هذا نسخ جميع تعديلات العميل إلى الطلبات. تغيير اسم العميل مثلًا لا يغيّر أعمدة الطلب، لأن السياسة تتعلق بالمفتاح الذي تستخدمه العلاقة. كذلك لا تتغير المفاتيح الأساسية المستقلة للطلبات؛ يتغير عمود مرجع العميل فقط في هذا التصميم.
مثال
CREATE TABLE customers (id INT PRIMARY KEY);
CREATE TABLE orders (
id INT PRIMARY KEY,
customer_id INT,
FOREIGN KEY (customer_id) REFERENCES customers(id)
ON UPDATE CASCADE
);
إذا تغير معرّف العميل من 1 إلى 9، تصبح قيمة customer_id في طلباته 9. يجب أن تكون القيمة الجديدة مقبولة أيضًا بحسب قيود الجدول الأب، مثل عدم تكرار مفتاحه الأساسي.
باختصار: تنقل ON UPDATE CASCADE تغيير المفتاح الأب إلى المراجع التابعة، دون إعادة ترقيم معرّفات الصفوف التابعة نفسها.
هل تريد تعلّم SQL خطوة بخطوة مع تمارين عملية؟ تابع مسار SQL من الأساسيات للاحتراف.