MySQL में स्टोर्ड प्रोसीजर बनाने, कॉल करने और पैरामीटर उपयोग करने का पूरा गाइड
स्टोर्ड प्रोसीजर बनाने का सिंटैक्स (डिलीमीटर के साथ):
DELIMITER //
CREATE PROCEDURE yourProcedureName()
BEGIN
-- वेरिएबल घोषित करें
-- SQL स्टेटमेंट्स
END //
DELIMITER ;
व्यावहारिक उदाहरण
1. डेटाबेस चुनें और डिलीमीटर बदलें:
mysql> USE test;
Database changed
mysql> DELIMITER //
2. सरल स्टोर्ड प्रोसीजर बनाएं (टेबल से सभी रिकॉर्ड चुनें):
mysql> CREATE PROCEDURE Sp_callTableStoredProcTable()
-> BEGIN
-> SELECT * FROM StoredProcTable;
-> END //
Query OK, 0 rows affected (0.54 sec)
3. डिलीमीटर वापस ; पर सेट करें:
mysql> DELIMITER ;
4. स्टोर्ड प्रोसीजर कॉल करें:
mysql> CALL Sp_callTableStoredProcTable();
+-----------+------+
| FirstName | Age |
+-----------+------+
| John | 23 |
| Bob | 24 |
| David | 20 |
+-----------+------+
3 rows in set (0.03 sec)
5. पैरामीटर वाला स्टोर्ड प्रोसीजर (रिकॉर्ड गिनती):
mysql> DELIMITER //
mysql> CREATE PROCEDURE CountingRecords()
-> BEGIN
-> SELECT COUNT(*) AS AllRecords FROM StoredProcTable;
-> END //
Query OK, 0 rows affected (0.19 sec)
mysql> DELIMITER ;
mysql> CALL CountingRecords();
+------------+
| AllRecords |
+------------+
| 3 |
+------------+
1 row in set (0.31 sec)
स्टोर्ड प्रोसीजर के प्रकार:
| प्रकार | सिंटैक्स | उपयोग |
| बिना पैरामीटर | CREATE PROC name() | फिक्स्ड क्वेरी |
| IN पैरामीटर | CREATE PROC name(IN param INT) | इनपुट मान पास करें |
| OUT पैरामीटर | CREATE PROC name(OUT param INT) | मान वापस करें |
| INOUT पैरामीटर | CREATE PROC name(INOUT param INT) | इनपुट/आउटपुट दोनों |
पैरामीटर वाला उदाहरण:
DELIMITER //
CREATE PROCEDURE GetEmployeeById(IN empId INT)
BEGIN
SELECT * FROM employees WHERE id = empId;
END //
DELIMITER ;
CALL GetEmployeeById(101);
सर्वोत्तम अभ्यास:
- हमेशा
DELIMITER बदलें और बाद में बहाल करें
DROP PROCEDURE IF EXISTS से पहले उपयोग करें
- सार्थक नाम दें (स्पेस नहीं, अंडरस्कोर उपयोग करें)
- कॉम्प्लेक्स लॉजिक के लिए
BEGIN ... END ब्लॉक उपयोग करें