मेरे पास दो MySQL टेबल हैं। एक वोट तालिका (id, userId, postId, voteTypeId)
, और एक पोस्ट तालिका (id, postTypeId, userId, parentId)
तालिका। मैं एक ट्रिगर लिख रहा हूं जो वोटों पर डालने के बाद आग लगती है।MySQL में एक अलग तालिका को अद्यतन करने के लिए मैं ट्रिगर का उपयोग कैसे कर सकता हूं?
मैं पदों तालिका में एक पोस्ट अद्यतन करने के लिए ट्रिगर करना चाहते हैं। लेकिन यह पोस्ट postId
के तहत मेरी वोट तालिका में संदर्भित नहीं है; यह उस पोस्ट का अभिभावक है।
BEGIN
CASE NEW.voteTypeId
WHEN 2 THEN UPDATE posts SET posts.acceptedAnswerId = NEW.postId WHERE posts.id = @the parent postId of NEW.postId
ELSE
BEGIN
END;
END CASE;
END
मैं की @the माता पिता के बजाय इस उपयोग करने की कोशिश ...:
(SELECT posts.parentId FROM posts WHERE posts.id = NEW.postId)
लेकिन तुम मैं जब तक आप वाक्य विन्यास में चयन के कुछ प्रकार का उपयोग नहीं लगता है कि आप ट्रिगर में चयन करता है क्या कर सकते हैं करते हैं । माता-पिता पद का मेरा एकमात्र संदर्भ जिसे मैं अपडेट करना चाहता हूं वह है अपने बच्चे के पोस्ट वोट में संदर्भित है। इसलिए मुझे नहीं पता कि चयन के माध्यम से सही आईडी को पकड़ने के बिना अद्यतन कैसे करें।
क्या यह संभव है?
आप कर सकते हैं वास्तव में एक ट्रिगर के भीतर एक का चयन करते हैं। आपका अन्य वाक्यविन्यास हालांकि थोड़ा सा दिखता है। – Mchl
@Mchl, मैंने कुछ संयोजनों की कोशिश की, लेकिन यह काम नहीं किया। क्या आप मुझे बता सकते हैं कि मैं क्या गलत कर रहा हूं? – Mohamad