- आपको सीमांकक को सिवाय किसी भी चीज़ पर सेट करने की आवश्यकता है
;
- वैकल्पिक रूप से, जांच करें कि क्या वही नाम संग्रहीत कार्यविधि पहले से मौजूद है।
- अंत में, सीमांकक को वापस
;
. पर फिर से परिभाषित करें - जब तक, आप वेरिएबल
x
. का उपयोग नहीं करने जा रहे हैं इस संग्रहीत प्रक्रिया के बाहर; आपको वास्तव में@
. का उपयोग करने की आवश्यकता नहीं है; यह उस विशेष सत्र में हर जगह चर उपलब्ध कराता है)।
कोशिश करें (टिप्पणियों में अधिक स्पष्टीकरण):
CREATE TABLE t1 (s1 INT, PRIMARY KEY (s1)); -- create the table
DELIMITER $$ -- redefine the delimiter to $$ (for eg)
DROP PROCEDURE IF EXISTS `handlerdemo` $$ -- drop previous if exists
CREATE PROCEDURE handlerdemo ()
BEGIN
DECLARE x INT DEFAULT 0; -- datatype is INT
-- also a good practice to set default value
SET x = 1; -- no need to use in Session context
INSERT INTO t1 VALUES (x); -- use variable name here instead of literal value
SET x = 2;
INSERT INTO t1 VALUES (x);
END $$ -- remember that delimiter is $$ right now
-- redefine the Delimiter back to ;
DELIMITER ;