التحديثات المشروطة لإدراج ... على مفتاح مكرر
يعد إدراج السجلات أو تحديثها بناءً على شروط المفاتيح المكررة سيناريو شائعًا في برمجة قواعد البيانات . ومع ذلك، في بعض الأحيان قد تحتاج إلى تقييد شرط التحديث بشكل أكبر، مما يجعله يعتمد على معايير إضافية. لسوء الحظ، فإن بناء جملة INSERT... ON DUPLICATE KEY UPDATE لا يدعم أصلاً عبارات WHERE للتحديثات الشرطية.
التغلب على القيود
للتغلب على هذا القيد، عليك يمكن الاستفادة من الدالة IF() ضمن جملة UPDATE. تتيح لك الدالة IF() تحديد قيمة بديلة بناءً على تعبير منطقي محدد.
مثال للتنفيذ
خذ بعين الاعتبار ما يلي INSERT ... ON DUPLICATE KEY UPDATE استعلام:
INSERT INTO daily_events (created_on, last_event_id, last_event_created_at) VALUES ('2010-01-19', 23, '2010-01-19 10:23:11') ON DUPLICATE KEY UPDATE last_event_id = IF(last_event_created_at < VALUES(last_event_created_at), VALUES(last_event_id), last_event_id);
في هذا الاستعلام، تحتوي جملة UPDATE على عبارة IF() التي تتحقق مما إذا كانت قيمة last_event_created_at الحالية أقل من القيمة التي يتم إدراجها. إذا كانت القيمة الحالية أقدم، فسيتم إجراء التحديث، واستبدال last_event_id بالقيمة الجديدة. بخلاف ذلك، سيتم الحفاظ على last_event_id الموجود.
اعتبارات إضافية
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3