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

MySQL स्टोर्ड प्रोसीजर बनाकर फैक्टोरियल कैसे गणना करें?


mysql> DELIMITER //
mysql> CREATE PROCEDURE get_factorial(IN N INT)
-> BEGIN
-> SET @@GLOBAL.max_sp_recursion_depth = 255;
-> SET @@SESSION.max_sp_recursion_depth = 255;
-> CALL factorial_recursive(N, @factorial);
-> SELECT @factorial;
-> END //
Query OK, 0 rows affected (0.00 sec)
mysql> DELIMITER //
mysql> CREATE PROCEDURE factorial_recursive(IN N INT, OUT factorial INT)
-> BEGIN
-> IF N = 1 THEN
-> SET factorial := 1;
-> ELSE
-> CALL factorial_recursive(N-1, factorial);
-> SET factorial := N * factorial;
-> END IF;
-> END //
Query OK, 0 rows affected (0.00 sec)
mysql> DELIMITER ;
mysql> CALL get_factorial(10);
+--------------+
| @factorial |
+--------------+
| 3628800 |
+--------------+
1 row in set (0.11 sec)
Query OK, 0 rows affected (0.12 sec)
mysql> CALL get_factorial(5);
+-------------+
| @factorial |
+-------------+
| 120 |
+-------------+
1 row in set (0.00 sec)
Query OK, 0 rows affected (0.00 sec)

व्याख्या: रिकर्सिव स्टोर्ड प्रोसीजर `factorial_recursive` फैक्टोरियल गणना करता है। `max_sp_recursion_depth` रिकर्सन सीमा बढ़ाता है (डिफ़ॉल्ट 0, रिकर्सन अक्षम)। `get_factorial` रैपर प्रोसीजर कॉल करता है और परिणाम प्रदर्शित करता है। MySQL में रिकर्सन सीमित है; बड़ी संख्याओं के लिए पुनरावृत्त दृष्टिकोण बेहतर है।

  1. - MySQL स्टोर्ड प्रोसीजर को कैसे अल्टर करें?

    यदि हमारे पास प्रोसीजर के लिए ALTER ROUTINE विशेषाधिकार हैं तो ALTER PROCEDURE स्टेटमेंट की मदद से हम MySQL स्टोर्ड प्रोसीजर को अल्टर कर सकते हैं। इसे दर्शाने के लिए हम delete_studentinfo नामक एक स्टोर्ड प्रोसीजर का उदाहरण ले रहे हैं जिसका निम्न CREATE स्टेटमेंट है: SHOW CREATE PROCEDURE Delete_st

  1. - एक MySQL स्टोर्ड प्रोसीजर दूसरे MySQL स्टोर्ड प्रोसीजर को अपने अंदर कैसे कॉल कर सकता है?

    यह बिल्कुल संभव है कि एक MySQL स्टोर्ड प्रोसीजर दूसरे MySQL स्टोर्ड प्रोसीजर को अपने अंदर कॉल कर सकता है। इसे दर्शाने के लिए, हम एक उदाहरण ले रहे हैं जिसमें एक स्टोर्ड प्रोसीजर दूसरे स्टोर्ड प्रोसीजर को कॉल करके last_insert_id का पता लगाएगा। उदाहरण BEGIN insert into employee.tbl(name) values (

  1. - किसी विशेष MySQL स्टोर्ड फंक्शन का सोर्स कोड कैसे देखें?

    SHOW CREATE FUNCTION स्टेटमेंट की मदद से, हम एक स्टोर्ड फंक्शन का सोर्स कोड देख सकते हैं। इसे समझने के लिए हम क्वेरी में Hello() नामक स्टोर्ड फंक्शन का उपयोग कर रहे हैं: SHOW CREATE FUNCTION Hello\G *************************** 1. row *************************** Function: Hello sql_mode: ON