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

MySQL स्टोर्ड प्रोसीजर में वेरिएबल मान को रिकॉर्ड अपडेट होने पर बदलने से कैसे रोकें?

हम एक स्टोर्ड प्रोसीजर बनाएंगे जो मान अपडेट होने पर वेरिएबल मान को नहीं बदलता।

आइए पहले एक टेबल बनाते हैं:

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      |
+----------+
  1. - MySQL में DATE_ADD से तारीख में वर्ष जोड़ें

    UPDATE और DATE_ADD() से मौजूदा तारीखों में अंतराल जोड़ें मौजूदा तारीख कॉलम में वर्ष (या अन्य अंतराल) जोड़ने के लिए UPDATE के साथ DATE_ADD() का उपयोग करें। टेबल बनाएं और डेटा डालें: mysql> create table DemoTable1984 ( ShippingDate date ); Query OK, 0 rows affected (0.00 sec) mysql> insert into

  1. - MySQL स्टोर्ड प्रोसीजर के वेरिएबल में कॉलम का मान स्टोर करें

    समाधान स्टोर्ड प्रोसीजर में DECLARE से वेरिएबल घोषित करें, SELECT ... INTO से मान असाइन करें। उदाहरण टेबल बनाएं: INSERT INTO DemoTable2034 (StudentName, StudentAge) VALUES (Chris, 23), (David, 21), (Robert, 25), (Mike, 19); स्टोर्ड प्रोसीजर बनाएं DELIMITER ; कॉल करें CALL select_into_variable(

  1. - MySQL में DECIMAL(19,2) कॉलम में डालते समय मान को TRUNCATE से 2 दशमलव तक सीमित करें

    TRUNCATE() फ़ंक्शन TRUNCATE(value, decimals) मान को निर्दिष्ट दशमलव स्थानों तक काटता है (राउंड नहीं करता)। उदाहरण insert into demo59 values(truncate(15.346, 2)), (truncate(20.379, 2)), (truncate(25.555, 2)), (truncate(100.456, 2)); परिणाम +--------+ | price | +--------+ | 15.34 | | 20.37 | |