কম্পিউটার

সঞ্চিত পদ্ধতির সাথে MySQL-এ সারির মান 1 দ্বারা বাড়াবেন এবং হ্রাস করবেন?


সারির মান 1 দ্বারা বাড়ানো এবং কমানোর জন্য প্রথমে একটি টেবিল তৈরি করা যাক। নিচের প্রশ্নটি হল −

mysql> create table IncrementAndDecrementValue
   −> (
   −> UserId int,
   −> UserScores int
   −> );
Query OK, 0 rows affected (0.60 sec)

সন্নিবেশ কমান্ড ব্যবহার করে টেবিলে কিছু রেকর্ড সন্নিবেশ করান। প্রশ্নটি নিম্নরূপ -

mysql> insert into IncrementAndDecrementValue values(101,20000);
Query OK, 1 row affected (0.13 sec)

mysql> insert into IncrementAndDecrementValue values(102,30000);
Query OK, 1 row affected (0.20 sec)

mysql> insert into IncrementAndDecrementValue values(103,40000);
Query OK, 1 row affected (0.11 sec)

সিলেক্ট স্টেটমেন্ট ব্যবহার করে টেবিল থেকে সমস্ত রেকর্ড প্রদর্শন করুন। প্রশ্নটি নিম্নরূপ -

mysql> select *from IncrementAndDecrementValue;

নিচের আউটপুট −

+--------+------------+
| UserId | UserScores |
+--------+------------+
|    101 |      20000 |
|    102 |      30000 |
|    103 |      40000 |
+--------+------------+
3 rows in set (0.00 sec)

সারি মান 1 দ্বারা বৃদ্ধি এবং হ্রাস করার জন্য এখানে আমার সংরক্ষিত পদ্ধতি।

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 ;

CALL কমান্ড ব্যবহার করে সঞ্চিত পদ্ধতিতে কল করুন। প্রশ্নটি নিম্নরূপ -

mysql> call IncrementAndDecrementRowValueByOne();
Query OK, 1 row affected (0.24 sec)

চেক করুন সারি মান আপডেট করা হয়েছে নাকি সিলেক্ট স্টেটমেন্ট ব্যবহার করছে না। প্রশ্নটি নিম্নরূপ -

mysql> select *from IncrementAndDecrementValue;

নিচের আউটপুট −

+--------+------------+
| UserId | UserScores |
+--------+------------+
|    101 |      19999 |
|    102 |      30001 |
|    103 |      40000 |
+--------+------------+
3 rows in set (0.00 sec)

আমরা 20000 থেকে 19999 মান হ্রাস করেছি এবং 30000 থেকে 30001 বৃদ্ধি করেছি৷


  1. MySQL সঞ্চিত পদ্ধতিতে DELETE ক্যোয়ারী প্রয়োগ করুন

  2. MySQL নির্দিষ্ট সারি এবং কলামে একটি মান সন্নিবেশ করান

  3. একটি MySQL সংরক্ষিত পদ্ধতিতে WHERE IN() এর সাথে কাজ করা

  4. MySQL-এ সঞ্চিত পদ্ধতিতে অন্য থাকলে প্রয়োগ করবেন?