Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> MySql

MySQL संग्रहीत कार्यविधि बनाते समय क्या `definer` आवश्यक है?

<घंटा/>

नहीं, जब आप एक संग्रहित प्रक्रिया बना रहे हों तो निश्चित भाग अनिवार्य नहीं है। इसका उपयोग तब किया जाता है जब आप एक निश्चित बनाना चाहते हैं।

MySQL.user तालिका से सभी उपयोगकर्ता और होस्ट की जाँच करें -

mysql> उपयोगकर्ता का चयन करें, mysql.user से होस्ट करें;

निम्न आउटपुट है -

<पूर्व>+---------------------+----------+| उपयोगकर्ता | मेजबान |+---------------------+-----------+| मनीष | % || User2 | % || mysql.infoschema | % || mysql.सेशन | % || mysql.sys | % || जड़ | % || एडम स्मिथ | लोकलहोस्ट || User1 | लोकलहोस्ट || हूँ | लोकलहोस्ट |+---------------------+----------+9 पंक्तियों में सेट (0.03 सेकंड)

यहां, आइए हम एडम स्मिथ के रूप में एक निश्चित करें। संग्रहीत कार्यविधि बनाने की क्वेरी इस प्रकार है -

mysql> delimiter //mysql> CREATE DEFINER ='एडम स्मिथ'@'लोकलहोस्ट' प्रक्रिया Sp_Definer() -> start -> 'Hello MySQL' चुनें; -> अंत; -> // क्वेरी ठीक है, 0 पंक्तियाँ प्रभावित (0.14 सेकंड)mysql> सीमांकक;

कॉल कमांड का उपयोग करके संग्रहीत कार्यविधि को कॉल करें। वाक्य रचना इस प्रकार है -

कॉल yourStoreedProcedureName();

उपरोक्त संग्रहीत कार्यविधि को कॉल करें।

mysql> कॉल Sp_Definer();

निम्न आउटपुट है।

<पूर्व>+---------------+| हैलो मायएसक्यूएल |+---------------+| नमस्ते MySQL |+---------------+1 पंक्ति सेट (0.00 सेकंड) में ठीक है, 0 पंक्तियाँ प्रभावित (0.01 सेकंड)
  1. MySQL संग्रहीत कार्यविधि में WHERE IN () के साथ कार्य करना

    आइए पहले एक टेबल बनाएं - );क्वेरी ओके, 0 पंक्तियाँ प्रभावित (0.69 सेकंड) इंसर्ट कमांड का उपयोग करके टेबल में कुछ रिकॉर्ड डालें - डेमोटेबल मानों में डालें (102, डेविड); क्वेरी ठीक है, 1 पंक्ति प्रभावित (0.18 सेकंड) चयन कथन का उपयोग करके तालिका से सभी रिकॉर्ड प्रदर्शित करें - डेमोटेबल से * चुनें;

  1. एक MySQL संग्रहीत प्रक्रिया में गणितीय संचालन करें?

    आइए एक संग्रहित प्रक्रिया बनाएं। यहां, हम राशि*मात्रा की गणना कर रहे हैं यानी गणितीय संक्रियाओं को लागू करना - सीमांकक; अब आप कॉल कमांड का उपयोग करके एक संग्रहीत कार्यविधि को कॉल कर सकते हैं - कॉल कैलकुलेशन_proc(250,3); यह निम्नलिखित आउटपुट देगा - +----------+----------+----------+| राशि | मात्र

  1. MySQL संग्रहीत कार्यविधि में किसी तालिका में डेटा सम्मिलित करें?

    संग्रहीत कार्यविधि में तालिका में सम्मिलित करने के लिए, सिंटैक्स इस प्रकार है - create procedure yourProcedureName(OptionalParameter)    begin    insert into yourTableName() values(yourValue1,yourValue2,...N); end में डालें ऊपर दिए गए सिंटैक्स को समझने के लिए, आइए पहले एक टेबल ब