Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

MySQL ट्रिगर में, क्या उपयोगकर्ता चर को NEW.col के साथ सेट करना और अद्यतन क्वेरी में इसका उपयोग करना संभव है?

यह संभव नहीं है जैसा कि गतिशील एसक्यूएल/तैयार वक्तव्य के साथ वर्णित है। यह Error Code: 1336. Dynamic SQL is not allowed in stored function or trigger यहां तक ​​कि CREATE TRIGGER . के प्रयास पर भी ।

ऑटोमेशन के सबसे करीब आप CREATE EVENT . का उपयोग कर सकते हैं . ईवेंट शेड्यूल किए गए संग्रहीत प्रोग्राम हैं जो आपकी पसंद के शेड्यूल/अंतराल पर चलते हैं। अंतराल हैं:

आप एक पंक्ति पर बोलने के लिए "ध्वज" सेट कर सकते हैं, जैसे कि जिस तालिका को आप ऊपर चित्रित कर रहे हैं उसमें सम्मिलित करने के बाद ट्रिगर है। इवेंट तब तैयार स्टेटमेंट<को निष्पादित कर सकता है /ए> गतिशील रूप से और इसे निष्पादित करें।

मेरा जवाब यहां इवेंट मैनेजमेंट पर देखें। ।

मेरा कहना है कि भले ही किसी कार्यक्रम में दौड़ें, जो आप प्रस्तावित कर रहे हैं वह लगभग हमेशा है एक खराब स्कीमा डिज़ाइन का संकेत जो सहकर्मी समीक्षा के लिए अच्छा नहीं होगा।

डायनेमिक sql और तैयार Stmt को अस्वीकृत करने का एक कारण यह है कि ट्रिगर को तेज़ होने की आवश्यकता है, और यहां तक ​​​​कि DDL को स्ट्रिंग में फंसाया जा सकता है और निष्पादित किया जा सकता है। और DDL stmts जैसे ALTER TABLE ट्रिगर में अस्वीकृत हैं (उन्हें सचमुच चलने में घंटों लग सकते हैं)।

आपकी स्कीमा में एक कॉलम ven_code . के साथ साझा की गई एक तालिका भी हो सकती है विभेदक स्तंभ होने के नाते। इसके बजाय आपने प्रत्येक ven_code . के लिए नई तालिकाएं बनाना चुना है . यह आमतौर पर एक खराब डिज़ाइन और प्रदर्शन विकल्प है।

यदि आपको स्कीमा डिज़ाइन में सहायता चाहिए, तो मुझे आपके साथ चैट रूम में इसके बारे में बात करने में प्रसन्नता हो रही है।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL गणना में उपनाम का उपयोग करना

  2. 'केवल पढ़ने के लिए' MySQL डेटाबेस में एक चर घोषित करें

  3. MySQL + JAVA अपवाद:परिणाम सेट की शुरुआत से पहले

  4. मैसकल पीडीओ में रिटर्निंग क्लॉज के लिए सिंटेक्स

  5. मैसकल डेटाबेस डिजाइन संरचना