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

एक विशेष डेटाबेस में विस्तृत जानकारी के साथ तालिकाओं को सूचीबद्ध करने के लिए, एक MySQL संग्रहीत कार्यविधि बनाएं, जो इसके पैरामीटर के रूप में डेटाबेस का नाम लेता है।


मान लीजिए कि वर्तमान में हम 'क्वेरी' नाम के डेटाबेस का उपयोग कर रहे हैं और इसमें निम्नलिखित टेबल हैं -

mysql> Show tables in query;
+-----------------+
| Tables_in_query |
+-----------------+
| student_detail  |
| student_info    |
+-----------------+
2 rows in set (0.00 sec)

अब, निम्नलिखित एक संग्रहीत कार्यविधि है, जो डेटाबेस के नाम को इसके पैरामीटर के रूप में स्वीकार करेगी और हमें विस्तृत जानकारी के साथ तालिकाओं की सूची प्रदान करेगी -

mysql> DELIMITER//
mysql> CREATE procedure tb_list(db_name varchar(40))
   -> BEGIN
   -> SET @z := CONCAT('Select * from information_schema.tables WHERE table_schema = ','\'',db_name,'\'');
   -> Prepare stmt from @z;
   -> EXECUTE stmt;
   -> END //
Query OK, 0 rows affected (0.06 sec)

अब डेटाबेस का नाम इसके पैरामीटर के रूप में प्रदान करके इस संग्रहीत कार्यविधि को लागू करें -

mysql> DELIMITER;
mysql> CALL tb_list('query')\G
*************************** 1. row ***************************
        TABLE_CATALOG: def
         TABLE_SCHEMA: query
           TABLE_NAME: student_detail
           TABLE_TYPE: BASE TABLE
               ENGINE: InnoDB
              VERSION: 10
           ROW_FORMAT: Dynamic
           TABLE_ROWS: 4
       AVG_ROW_LENGTH: 4096
          DATA_LENGTH: 16384
      MAX_DATA_LENGTH: 0
         INDEX_LENGTH: 0
            DATA_FREE: 0
       AUTO_INCREMENT: NULL
          CREATE_TIME: 2017-12-13 16:25:44
          UPDATE_TIME: NULL
           CHECK_TIME: NULL
      TABLE_COLLATION: latin1_swedish_ci
             CHECKSUM: NULL
       CREATE_OPTIONS:
        TABLE_COMMENT:
*************************** 2. row ***************************
        TABLE_CATALOG: def
         TABLE_SCHEMA: query
           TABLE_NAME: student_info
           TABLE_TYPE: BASE TABLE
               ENGINE: InnoDB
              VERSION: 10
           ROW_FORMAT: Dynamic
           TABLE_ROWS: 4
       AVG_ROW_LENGTH: 4096
          DATA_LENGTH: 16384
      MAX_DATA_LENGTH: 0
         INDEX_LENGTH: 0
            DATA_FREE: 0
       AUTO_INCREMENT: NULL
          CREATE_TIME: 2017-12-12 09:52:51
          UPDATE_TIME: NULL
           CHECK_TIME: NULL
      TABLE_COLLATION: latin1_swedish_ci
             CHECKSUM: NULL
       CREATE_OPTIONS:
        TABLE_COMMENT:
2 rows in set (0.00 sec)

  1. MySQL में सीमांकक के साथ एक संग्रहीत कार्यविधि बनाएँ

    आप क्रिएट प्रोसीजर कमांड का उपयोग करके एक संग्रहीत कार्यविधि बना सकते हैं। वाक्य रचना इस प्रकार है - delimiter//CREATE PROCEDURE yourStoreProcedureName()BEGIN वेरिएबल को यहां डिक्लेयर करें क्वेरी स्टेटमेंटEND//delimiter // संग्रहीत कार्यविधि बनाने के लिए उपरोक्त सिंटैक्स लागू करें। क्वेरी इस प्रकार

  1. पैरामीटर के साथ MySQL में एक प्रक्रिया बनाएं?

    आप IN और OUT का उपयोग करके एक पैरामीटर बना सकते हैं। IN का उपयोग इनपुट पैरामीटर लेने के लिए किया जाता है और OUT का उपयोग आउटपुट के लिए किया जा सकता है। वाक्य रचना इस प्रकार है DELIMITER // अपना प्रक्रिया नाम बनाएं (आपके पैरामीटर नाम डेटा प्रकार में, अपने पैरामीटर नाम डेटा प्रकार से बाहर) BEGINyourS

  1. एक MySQL संग्रहीत प्रक्रिया में लागू एक क्वेरी से डेटाबेस का नाम प्राप्त करें?

    डेटाबेस का नाम प्राप्त करने के लिए, नीचे दिए गए सिंटैक्स का उपयोग करें - डेटाबेस चुनें (); आइए हम उपरोक्त सिंटैक्स को संग्रहीत कार्यविधि में लागू करें - सीमांकक; अब आप कॉल कमांड का उपयोग करके एक संग्रहीत कार्यविधि को कॉल कर सकते हैं - get_procedure_database_name() पर कॉल करें; यह निम्नलिखित आउट