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

पैरामीटर के साथ MySQL संग्रहीत प्रक्रिया

कभी-कभी आपको MySQL में संग्रहीत कार्यविधि में इनपुट पास करने की आवश्यकता हो सकती है। इस लेख में, हम देखेंगे कि पैरामीटर के साथ MySQL संग्रहीत कार्यविधि कैसे बनाई जाए और संग्रहीत कार्यविधियों में समर्थित विभिन्न प्रकार के पैरामीटर।

पैरामीटर के साथ MySQL संग्रहीत कार्यविधि

यहां पैरामीटर के साथ संग्रहीत कार्यविधि बनाने के चरण दिए गए हैं। MySQL 3 प्रकार के संग्रहीत कार्यविधि मापदंडों का समर्थन करता है - IN, OUT, और INOUT। आइए हम उनमें से प्रत्येक को विस्तार से देखें

IN - यह डिफ़ॉल्ट मोड है। इस मोड में, कॉल स्टेटमेंट को तर्क को संग्रहीत कार्यविधि में पास करना होता है। साथ ही, एक IN प्रकार के पैरामीटर का मान सुरक्षित रहता है, जिसका अर्थ है कि यदि आप संग्रहीत प्रक्रिया के अंदर इसका मान बदलते हैं, तो भी यह इसके बाहर अपरिवर्तित रहेगा।

बाहर - एक आउट पैरामीटर का मान संग्रहीत प्रक्रिया के अंदर बदला जा सकता है और इसका नया मान कॉल स्टेटमेंट में वापस भेज दिया जाएगा।

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

यहाँ MySQL में पैरामीटर के साथ संग्रहीत कार्यविधि का सिंटैक्स है।

[IN | OUT | INOUT] parameter_name datatype[(length)]

उपरोक्त कथन में, हम पहले पैरामीटर का प्रकार, फिर पैरामीटर का नाम और कॉलम का प्रकार निर्दिष्ट करते हैं।

पैरामीटर उदाहरणों के साथ MySQL संग्रहीत कार्यविधि

आइए हम पैरामीटर के साथ संग्रहित प्रक्रिया के कुछ उदाहरण देखें।

इन पैरामीटर

यहाँ IN पैरामीटर के साथ संग्रहीत कार्यविधि बनाने के लिए SQL क्वेरी है।

mysql> DELIMITER //

mysql> CREATE PROCEDURE get_product(
       IN prod_id int
       )
       BEGIN
       SELECT *
        FROM products
       WHERE product_id = prod_id;
       END //

mysql> DELIMITER ;
mysql> call get_product(1);
+------------+--------------+-------+
| product_id | product_name | price |
+------------+--------------+-------+
|          1 | iPhone 11    |   400 |
+------------+--------------+-------+

mysql> call get_product();
ERROR 1318 (42000): Incorrect number of arguments for PROCEDURE sample.get_product; expected 1, got 0

ऊपर, हमने एक IN संग्रहित प्रक्रिया पैरामीटर prod_id . को परिभाषित किया है . जब हम कॉल स्टेटमेंट में इसके तर्क को पास करते हैं, तो संग्रहीत प्रक्रिया अपेक्षित परिणाम देती है। हालांकि, अगर आप तर्क पारित नहीं करते हैं, तो यह एक त्रुटि देता है।

बोनस पढ़ें :MySQL में समग्र प्राथमिक कुंजी कैसे बनाएं

आउट पैरामीटर

यहां OUT पैरामीटर का उपयोग करके बनाई गई एक संग्रहीत कार्यविधि है।

mysql> DELIMITER $$

mysql> CREATE PROCEDURE get_count(
       IN prod_id int,
       OUT total INT
       )
       BEGIN
       SELECT COUNT(*)
       INTO total
       FROM products
       WHERE product_id = prod_id;
       END$$

mysql> DELIMITER ;

mysql> call get_count(1,@total);

mysql> select @total;
+--------+
| @total |
+--------+
|      1 |
+--------+

उपरोक्त संग्रहीत कार्यविधि में हम 2 पैरामीटर परिभाषित करते हैं - prod_id के लिए एक IN पैरामीटर और प्रक्रिया के परिणाम को संग्रहीत करने के लिए एक OUT पैरामीटर।

जब हम कॉल स्टेटमेंट में उत्पाद आईडी पास करते हैं, तो हमारी संग्रहीत प्रक्रिया इस उत्पाद आईडी से मेल खाने वाली पंक्तियों की गणना की गणना करती है और परिणाम को OUT पैरामीटर कुल में संग्रहीत करती है।

बोनस पढ़ें :MySQL में टेबल को कैसे छोटा करें

इनआउट पैरामीटर

यहां INOUT पैरामीटर का उपयोग करके बनाई गई एक संग्रहीत कार्यविधि है।

DELIMITER $$

CREATE PROCEDURE counter(
	INOUT count INT,
    IN increment INT
)
BEGIN
	SET count = count + increment;
END$$

DELIMITER ;

उपरोक्त संग्रहीत कार्यविधि में हमने एक IN पैरामीटर increment . परिभाषित किया है और एक INOUT पैरामीटर गिनती जो संग्रहीत प्रक्रिया का परिणाम संग्रहीत करता है। हमारी संग्रहीत प्रक्रिया मूल रूप से वृद्धि . जोड़ती है गिनने . के लिए पैरामीटर और परिणाम को गिनती . में संग्रहीत करता है पैरामीटर।

mysql> SET @count = 10;

mysql> CALL counter(@count,1);

mysql> SELECT @count;
+--------+
| @count |
+--------+
|     11 |
+--------+

उम्मीद है, अब आप आसानी से MySQL में पैरामीटर के साथ संग्रहित प्रक्रिया बना सकते हैं।

बोनस पढ़ें :MySQL ड्रॉप व्यू

Ubiq मिनटों में डेटा को विज़ुअलाइज़ करना और रीयल-टाइम डैशबोर्ड में मॉनिटर करना आसान बनाता है। इसे आज ही आजमाएं!

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PHP/MySQL का उपयोग करके CSV डेटा आयात करना

  2. पैरामीटरयुक्त चयन क्वेरी के लिए मैं पीडीओ ऑब्जेक्ट का सही तरीके से उपयोग कैसे कर सकता हूं?

  3. MySQL उपयोगकर्ता अनुमतियाँ

  4. MAX () - MySQL में एक कॉलम में अधिकतम मान का पता लगाएं

  5. MySQL में FIELD () और FIND_IN_SET () के बीच अंतर