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

MySQL स्टोर्ड प्रोसीजर पैरामीटर्स में @ चरित्र का सही उपयोग

MySQL में स्टोर्ड प्रोसीजर पैरामीटर्स की शुरुआत में @ चरित्र का उपयोग नहीं किया जा सकता। @ चरित्र केवल यूजर-डिफाइंड वेरिएबल्स (उपयोगकर्ता-परिभाषित चर) के लिए आरक्षित है।

सही सिंटैक्स

यूजर-डिफाइंड वेरिएबल के लिए @ का उपयोग

SET @yourVariableName = yourValue;

स्टोर्ड प्रोसीजर में सही कार्यान्वयन

mysql> DELIMITER //
mysql> CREATE PROCEDURE declare_Variable(IN StudentName VARCHAR(100))
BEGIN
    SET @Name = StudentName;    -- @ का उपयोग यूजर वेरिएबल के लिए
    SELECT @Name;
END //
Query OK, 0 rows affected (0.12 sec)

mysql> DELIMITER ;

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

mysql> CALL declare_Variable('John Smith');
+------------+
| @Name      |
+------------+
| John Smith |
+------------+
1 row in set (0.00 sec)

मुख्य अंतर

पैरामीटर (कोई @ नहीं)यूजर वेरिएबल (@ के साथ)
IN StudentName VARCHAR(100)SET @Name = 'value'
प्रोसीजर हेडर में घोषितसत्र के लिए वैश्विक
केवल प्रोसीजर के भीतर दृश्यसत्र में कहीं भी पहुंच योग्य

सर्वोत्तम अभ्यास

  • स्टोर्ड प्रोसीजर पैरामीटर्स के लिए: IN param_name TYPE (बिना @)
  • सत्र-स्तरीय चर के लिए: @var_name
  • स्थानीय चर के लिए (केवल BEGIN...END ब्लॉक में): DECLARE var_name TYPE
  1. - MySQL स्टोर्ड प्रोसीजर में WHERE IN() क्लॉज का उपयोग कैसे करें?

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

  1. - MySQL में शर्त के साथ स्टोर्ड प्रोसीजर से रिकॉर्ड कैसे अपडेट करें?

    MySQL में स्टोर्ड प्रोसीजर के अंदर UPDATE और WHERE क्लॉज का उपयोग करके शर्त के आधार पर रिकॉर्ड अपडेट किए जा सकते हैं। सिंटैक्स DELIMITER // CREATE PROCEDURE procedure_name(IN param1 TYPE, IN param2 TYPE) BEGIN UPDATE table_name SET col1 = param1, col2 = param2 WHERE condition; END // DE

  1. - MySQL में विशेष वर्ण वाले मान को खोजकर NULL से कैसे बदलें?

    MySQL में किसी विशिष्ट मान (जिसमें विशेष वर्ण शामिल हों) को खोजकर उसे NULL से बदलने के लिए, साधारण UPDATE स्टेटमेंट के साथ WHERE क्लॉज़ का उपयोग करें। विशेष वर्णों के लिए स्ट्रिंग लिटरल में उचित एस्केपिंग या कोटिंग आवश्यक है। उदाहरण: अंडरस्कोर वाले कोड को NULL करना डेमो टेबल बनाएं: mysql> CREA