"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > كيف يمكن إدراج MySQL ... على عمليات تحديث المفتاح المكررة مع عمليات الانعطاف؟

كيف يمكن إدراج MySQL ... على عمليات تحديث المفتاح المكررة مع عمليات الانعطاف؟

نشر في 2025-02-26
تصفح:762

How Does MySQL's INSERT ... ON DUPLICATE KEY UPDATE Handle Upsert Operations?

عملية upsert فعالة لـ MySQL: استخدام إدراج ... على تحديث مفتاح مكرر

]

في إدارة قاعدة بيانات MySQL ، غالبًا ما يكون من الضروري إجراء عمليات مثل إدخال صفوف جديدة أو تحديث الصفوف الموجودة بناءً على ما إذا كانت البيانات موجودة. وهذا ما يسمى عملية "Upsert" (أدخل أو تحديث).

يوفر MySQL إدراج ... على تحديث مفتاح مكرر بناء الجملة لتنفيذ وظيفة upsert بكفاءة. مبدأ العمل هو كما يلي:

INSERT INTO `table_name`
(`column1`, `column2`, ...)
VALUES
(value1, value2, ...)
ON DUPLICATE KEY UPDATE
`column1` = value1_updated,
`column2` = value2_updated,
...
يحدد جملة

إدراج القيمة المراد إدراجها في الجدول. على شرط مفتاح مكرر يحدد الإجراء الذي سيتم تنفيذه عندما يكون هناك صف مع نفس المفتاح الأساسي (أو الفهرس الفريد) في الجدول.

على سبيل المثال ، فكر في الجدول التالي:

CREATE TABLE `usage` (
    `thing_id` INT NOT NULL PRIMARY KEY,
    `times_used` INT DEFAULT 0,
    `first_time_used` TIMESTAMP
);

إذا كنت ترغب في إدراج بيانات جديدة للصف مع يمكنك استخدام استعلام upsert التالي: أدخل في `usage` (`thing_id` ،` times_used` ، `first_time_used`) قيم (4815162342 ، 1 ، الآن ()) على تحديث مفتاح مكرر `times_used` =` times_used` 1

إذا كان الصف مع
INSERT INTO `usage`
(`thing_id`, `times_used`, `first_time_used`)
VALUES
(4815162342, 1, NOW())
ON DUPLICATE KEY UPDATE
`times_used` = `times_used`   1
، بينما

خلاف ذلك ، سيتم إدخال خط جديد. insert ... على تحديث مفتاح التكرار هي تقنية مرنة وفعالة لأداء العمليات الخلاصة في MySQL. يتيح لك إجراء عمليات إدراج وتحديث مع استعلام واحد ، وتبسيط التعليمات البرمجية وتحسين الأداء.

أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3