हम एक स्टोर्ड प्रोसीजर बनाएंगे जो मान अपडेट होने पर वेरिएबल मान को नहीं बदलता।
आइए पहले एक टेबल बनाते हैं:
mysql> CREATE TABLE DemoTable (
Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
Value INT
);
टेबल में कुछ रिकॉर्ड डालें:
mysql> INSERT INTO DemoTable(Value) VALUES(100);
टेबल से सभी रिकॉर्ड प्रदर्शित करें:
mysql> SELECT * FROM DemoTable;
आउटपुट
+----+-------+ | Id | Value | +----+-------+ | 1 | 100 | +----+-------+
अपडेट के बाद पुराना मान दिखाने वाला स्टोर्ड प्रोसीजर:
mysql> DELIMITER //
mysql> CREATE PROCEDURE updateValue100()
BEGIN
DECLARE myValue INT;
SELECT @myValue := (SELECT Value FROM DemoTable WHERE Id=1);
SELECT @myValue;
UPDATE DemoTable SET Value=200 WHERE Id=1;
SELECT @myValue := (SELECT Value FROM DemoTable WHERE Id=1);
SELECT @myValue;
END //
mysql> DELIMITER ;
अब CALL कमांड का उपयोग करके स्टोर्ड प्रोसीजर को कॉल करें:
mysql> CALL updateValue100();
आउटपुट
+-------------------------------------------------------+ | @myValue :=(select Value from DemoTable where Id=1) | +-------------------------------------------------------+ | 100 | +-------------------------------------------------------+ +----------+ | @myValue | +----------+ | 100 | +----------+ +-------------------------------------------------------+ | @myValue :=(select Value from DemoTable where Id=1) | +-------------------------------------------------------+ | 200 | +-------------------------------------------------------+ +----------+ | @myValue | +----------+ | 200 | +----------+