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

क्या MySQL स्टोर्ड प्रोसीजर बनाते समय DEFINER आवश्यक है?


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

MySQL यूजर और होस्ट जांचें

mysql> SELECT user, host FROM mysql.user;

आउटपुट

+------------------+-----------+
| user             | host      |
+------------------+-----------+
| Manish           | %         |
| User2            | %         |
| mysql.infoschema | %         |
| mysql.session    | %         |
| mysql.sys        | %         |
| root             | %         |
| Adam Smith       | localhost |
| User1            | localhost |
| am               | localhost |
+------------------+-----------+
9 rows in set (0.03 sec)

'Adam Smith' के रूप में डिफाइनर बनाएं

mysql> DELIMITER // 
mysql> CREATE DEFINER = 'Adam Smith'@'localhost' PROCEDURE Sp_Definer() 
    -> BEGIN 
    -> SELECT 'Hello MySQL'; 
    -> END; 
    -> // 
Query OK, 0 rows affected (0.14 sec) 
mysql> DELIMITER ;

स्टोर्ड प्रोसीजर कॉल करें

CALL yourStoredProcedureName();
mysql> CALL Sp_Definer();

आउटपुट

+-------------+
| Hello MySQL |
+-------------+
| Hello MySQL |
+-------------+
1 row in set (0.00 sec) 
Query OK, 0 rows affected (0.01 sec)

यदि DEFINER निर्दिष्ट नहीं किया जाता है, तो डिफ़ॉल्ट रूप से प्रोसीजर बनाने वाला यूजर डिफाइनर होता है।

  1. - MySQL स्टोर्ड प्रोसीजर में WHERE IN() क्लॉज का उपयोग कैसे करें?

    MySQL स्टोर्ड प्रोसीजर में डायनामिक WHERE IN() क्लॉज का उपयोग करने के लिए प्रिपेयर्ड स्टेटमेंट (Prepared Statements) का उपयोग करना पड़ता है, क्योंकि IN क्लॉज में सीधे पैरामीटर पास नहीं किया जा सकता। समस्या सीधे पैरामीटर उपयोग नहीं कर सकते: -- यह काम नहीं करेगा: SELECT * FROM table WHERE id IN (inpu

  1. - MySQL स्टोर्ड प्रोसीजर में गणितीय संक्रियाएं करें?

    आइए एक स्टोर्ड प्रोसीजर बनाते हैं। यहाँ हम amount*quantity की गणना कर रहे हैं यानी गणितीय संक्रियाएं लागू कर रहे हैं: mysql> delimiter // mysql> create procedure calculation_proc(amount int,quantity int) begin select amount,quantity,(amount*quantity) as Total; end // Query OK, 0 rows affe

  1. - MySQL स्टोर्ड प्रोसीजर में टेबल में डेटा कैसे इन्सर्ट करें?

    MySQL स्टोर्ड प्रोसीजर के अंदर INSERT स्टेटमेंट का उपयोग करके टेबल में डेटा इन्सर्ट कर सकते हैं। पैरामीटर लेकर डायनामिक इन्सर्ट करने वाला प्रोसीजर पुन: उपयोग योग्य और सुरक्षित होता है। सिंटैक्स CREATE PROCEDURE procedure_name(IN param1 TYPE, IN param2 TYPE, ...) BEGIN INSERT INTO table_name (co