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

هل يمكن جعل عبارات MySQL INSERT مشروطة؟

تم النشر بتاريخ 2024-11-11
تصفح:547

Can MySQL INSERT Statements Be Made Conditional?

عبارات الإدراج الشرطية في MySQL

سؤال: هل من الممكن إجراء عملية INSERT بشكل مشروط، على غرار عملية INSERT بيان IF؟

التوضيح:

لنفترض أننا بحاجة إلى تقديم طلب لـ 20 عنصرًا بمعرف المنتج 2. لضمان وجود مخزون كافٍ، نتحقق أولاً من الكمية المتوفرة :

اختر إذا( (اختر SUM(qty) من الطلبات التي يكون فيها رقم المنتج = 2) 20 SELECT IF( ( SELECT SUM(qty) FROM orders WHERE product_id = 2 ) 20 إذا كانت النتيجة صحيحة، فإننا نقوم بتنفيذ استعلام INSERT. ومع ذلك، هذا الأسلوب عرضة لمشاكل التزامن. يمكن أن تؤدي الطلبات المتزامنة المتعددة إلى زيادة في البيع.

الإجابة:نعم، من الممكن استخدام عبارات INSERT الشرطية باستخدام بناء الجملة التالي:

INSERT INTO TABLE حدد value_for_column1، value_for_column2، ... من أي مكان WHERE your_special_condition

INSERT INTO TABLE
SELECT value_for_column1, value_for_column2, ...
FROM wherever
WHERE your_special_condition

مثال:

For المخطط المحدد:

المنتجات: المعرف، qty_on_hand الطلبات: المعرف، معرف المنتج، الكمية

products: id, qty_on_hand
orders: id, product_id, qty
insert into orders (product_id, qty)
select 2, 20
where (SELECT qty_on_hand FROM products WHERE id = 2) > 20;
أحدث البرنامج التعليمي أكثر>

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

Copyright© 2022 湘ICP备2022001581号-3