কম্পিউটার টিউটোরিয়াল

MySQL-এ স্টোরড প্রোসিডিউর ব্যবহার করে রো মান ১ করে বাড়ানো/কমানো (ইনক্রিমেন্ট/ডিক্রিমেন্ট)

MySQL-এ স্টোরড প্রোসিডিউর লিখে একাধিক রোয়ের মান একসাথে ইনক্রিমেন্ট এবং ডিক্রিমেন্ট করা যায়। এটি ট্রানজ্যাকশনাল কনসিস্টেন্সি নিশ্চিত করে।

উদাহরণ

mysql> CREATE TABLE IncrementAndDecrementValue (UserId INT, UserScores INT);
mysql> INSERT INTO IncrementAndDecrementValue VALUES (101,20000), (102,30000), (103,40000);

mysql> DELIMITER //
mysql> CREATE PROCEDURE IncrementAndDecrementRowValueByOne()
    -> BEGIN
    -> DECLARE first INT;
    -> DECLARE second INT;
    -> SET first = (SELECT UserScores FROM IncrementAndDecrementValue WHERE UserId = 101);
    -> SET second = (SELECT UserScores FROM IncrementAndDecrementValue WHERE UserId = 102);
    -> UPDATE IncrementAndDecrementValue SET UserScores = first - 1 WHERE UserId = 101;
    -> UPDATE IncrementAndDecrementValue SET UserScores = second + 1 WHERE UserId = 102;
    -> END //
Query OK, 0 rows affected (0.17 sec)
mysql> DELIMITER ;

mysql> CALL IncrementAndDecrementRowValueByOne();
mysql> SELECT * FROM IncrementAndDecrementValue;
+--------+------------+
| UserId | UserScores |
+--------+------------+
| 101    | 19999      |
| 102    | 30001      |
| 103    | 40000      |
+--------+------------+

উন্নত পদ্ধতি: সরাসরি `UPDATE ... SET col = col + 1 WHERE ...` ব্যবহার করুন। প্রোসিডিউর জরুরি হলে ভেরিয়েবল ছাড়াই `UPDATE t SET col = col - 1 WHERE id=101; UPDATE t SET col = col + 1 WHERE id=102;` করুন।

  1. MySQL স্টোরড প্রোসিডিউরে DELETE কোয়েরি বাস্তবায়ন করা

  2. MySQL-এ UPDATE ... WHERE ব্যবহার করে নির্দিষ্ট সারি ও কলাম আপডেট করুন

  3. MySQL স্টোরড প্রসিডিউরে WHERE IN() ব্যবহার করা

  4. MySQL 저장 프로시저에서 IF-ELSE 조건문 구현하기