عبارات الإدراج الشرطية في 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