sql - Why can't I use this where clause in my mysql trigger? -


उद्देश्य

एक ट्रिगर बनाएँ जो नए-डाला एक ही विभाग में एक छात्र को प्रशिक्षक जो वर्तमान में कोई सलाहकार नहीं है, और सलाहकार तालिका में एक इसी रिकॉर्ड को सम्मिलित करता है।

टेबल्स:

  छात्र (आईडी, नाम, dept_name, tot_cred) प्रशिक्षक (आईडी, नाम, dept_name, वेतन सलाहकार (s_id, i_id)   

नोट: छात्र Dept_name छात्र के प्रमुख, s_id को संदर्भित करता है student.id से संबंधित है, और i_id instructor.id के साथ जुड़ा हुआ है <पूर्व> DELIMITER $$ ट्रिगर सलाहकार_मैच बनाएं प्रत्येक रूट के लिए प्रशिक्षक पर निर्देश के बाद सलाहकार को एक SET a.i_id = new.instructor.id + (SELECT a .s_id, s.dpt_name विद्यार्थी से LEFT OUTER JOIN सलाहकार WHERE a.s_id IS NULL और s.dpt_name = new.instructor.dpt_name;); END $ $ DELIMITER;

वहां से संभावित रूप से संभवतः इस कोड के साथ और अधिक मुद्दों की तुलना में मुझे पता है, लेकिन अभी, MySQL इस WHERE क्लॉज का उपयोग करने के बारे में मुझे एक त्रुटि डालता है और मुझे क्यों नहीं समझा जा सकता।

संपादित करें: मेरे वर्तमान दुर्दशा को प्रतिबिंबित करने के लिए कोड को तय किया गया जो कि अब मुझे अपने END पर त्रुटि मिल रही है IF; END $ $ लाइन।

संपादित करें 2: हटाया गया END IF; क्योंकि मैं IF कथन का उपयोग नहीं कर रहा हूं सभी समस्याओं का हल अब धन्यवाद सबको!

आप अपने JOIN के बाद ओ भाग को भूल गए, सबसे अधिक संभावना: s.id = a .s_id

आपको उपनाम सलाहकार की भी आवश्यकता है।

Comments

Popular posts from this blog

c# - ASP.NET MVC - Attaching an entity of type 'MODELNAME' failed because another entity of the same type already has the same primary key value -

jasper reports - How to center align barcode using jasperreports and barcode4j -

django - CommandError: You must set settings.ALLOWED_HOSTS if DEBUG is False -