MySQL
उपयोगकर्ता-परिभाषित चर की अवधारणा है ।
वे शिथिल टाइप किए गए चर हैं जिन्हें सत्र में कहीं आरंभ किया जा सकता है और सत्र समाप्त होने तक अपना मूल्य रख सकते हैं।
वे @
इस तरह एक संकेत के साथ तैयार हैं :@var
आप इस वैरिएबल को एक SET
स्टेटमेंट के साथ या एक क्वेरी में अंदर कर सकते हैं :
SET @var = 1
SELECT @var2 := 2
जब आप एक संग्रहीत प्रक्रिया विकसित करते हैं MySQL
, तो आप इनपुट मापदंडों को पारित कर सकते हैं और स्थानीय चर घोषित कर सकते हैं:
DELIMITER //
CREATE PROCEDURE prc_test (var INT)
BEGIN
DECLARE var2 INT;
SET var2 = 1;
SELECT var2;
END;
//
DELIMITER ;
ये चर किसी भी उपसर्ग के साथ पूर्व निर्धारित नहीं हैं।
एक प्रक्रिया चर और एक सत्र-विशिष्ट उपयोगकर्ता-परिभाषित चर के बीच का अंतर यह है कि प्रक्रिया चर को NULL
हर बार प्रक्रिया कहा जाता है, जबकि सत्र-विशिष्ट चर नहीं है:
CREATE PROCEDURE prc_test ()
BEGIN
DECLARE var2 INT DEFAULT 1;
SET var2 = var2 + 1;
SET @var2 = @var2 + 1;
SELECT var2, @var2;
END;
SET @var2 = 1;
CALL prc_test();
var2 @var2
--- ---
2 2
CALL prc_test();
var2 @var2
--- ---
2 3
CALL prc_test();
var2 @var2
--- ---
2 4
जैसा कि आप देख सकते हैं, var2
(प्रक्रिया चर) हर बार प्रक्रिया को पुष्ट किया जाता है, जबकि प्रक्रिया @var2
(सत्र-विशिष्ट चर) नहीं है।
(उपयोगकर्ता-निर्धारित वेरिएबल के अलावा, MySQL भी कुछ पूर्वनिर्धारित "प्रणाली चर", जैसे कि "वैश्विक चर" हो सकता है जो है @@global.port
या "सत्र चर" जैसे @@session.sql_mode
, इन "सत्र चर" सत्र-विशिष्ट से संबंधित नहीं हैं उपयोगकर्ता परिभाषित चर।)