2013-06-11 10 views
6

पर एक और तालिका अपडेट करें, मैंने इस मुद्दे के बारे में कई जवाब पहले से ही खोजे और पढ़े हैं, लेकिन इसे कैसे करें इस पर एक स्पष्ट उत्तर नहीं मिला।MySQL ट्रिगर,

DELIMITER // 
CREATE TRIGGER `Stock_Update` AFTER INSERT ON `Store_db`.`Product_Supply` FOR EACH ROW 
BEGIN 
    UPDATE `Store_db`.`Stock` AS `ST` 
    SET `ST`.`Stock_Quantity` = `ST`.`Stock_Quantity` + `Product_Supply`.`Supply_Quantity` 
    WHERE `ST`.`Product_ID` = `Product_Supply`.`Product_ID`; 
END// 
DELIMITER ; 

अग्रिम धन्यवाद:

मेरे क्वेरी निम्नलिखित है।

पीएस एक अधिक सामान्य उत्तर अच्छा भी हो सकता है और अच्छी तरह से

+0

आपको जो त्रुटि मिल रही है उसका एक त्वरित विवरण उपयोगी होगा। – RandomSeed

+0

मुझे यह मिल रहा था कि यह कॉलम नहीं ढूंढ पाएगा जिसे आपने बाद में मुझे नए से बदलने के लिए कहा था। कॉलमनाम – Mitsosp

उत्तर

4

के रूप में अन्य लोगों ने किसी मेज पर एक ट्रिगर के भीतर से के लिए उपयोगी हो सकता है, इस तालिका के क्षेत्रों के सभी संदर्भ या तो NEW. या OLD. है, जो करने के लिए क्रमश: संदर्भित करता है से उपसर्ग होना चाहिए परिवर्तन के बाद या उससे पहले इस क्षेत्र का मूल्य। NEW.Supply_Quantity का उपयोग करें (Product_Supply का उल्लेख नहीं है, यह पहले से ही NEW कीवर्ड द्वारा निहित है):

आपके मामले में, आप शायद अपने मौजूदा स्टॉक को नव डाला मात्रा जोड़ना चाहते हैं।

इसी प्रकार, आप निश्चित रूप से NEW.Product_ID का उपयोग अपनी स्थिति में करना चाहते हैं।

ध्यान दें कि NEW विलोपन पर ट्रिगर में उपलब्ध नहीं है, जैसे OLD प्रविष्टि पर एक ट्रिगर में।

+0

अच्छा, मुझे यही चाहिए, बहुत बहुत धन्यवाद। – Mitsosp

संबंधित मुद्दे