আপডেট কমান্ড ব্যবহার করে ডাটাবেস ফিল্ড ইনক্রিমেন্ট করা যায়। সিনট্যাক্স:
UPDATE yourTableName SET yourColumnName = yourColumnName + 1 WHERE condition;
সিনট্যাক্স বুঝতে একটি টেবিল তৈরি করি:
mysql> CREATE TABLE IncrementBy1 (
-> Id INT,
-> Name VARCHAR(100),
-> CounterLogin INT
-> ); Query OK, 0 rows affected (0.63 sec)
ইনসার্ট কমান্ড দিয়ে কিছু রেকর্ড ইনসার্ট করি:
mysql> INSERT INTO IncrementBy1 VALUES(100,'John',30); Query OK, 1 row affected (0.17 sec) mysql> INSERT INTO IncrementBy1 VALUES(101,'Carol',50); Query OK, 1 row affected (0.15 sec) mysql> INSERT INTO IncrementBy1 VALUES(102,'Bob',89); Query OK, 1 row affected (0.25 sec) mysql> INSERT INTO IncrementBy1 VALUES(103,'Mike',99); Query OK, 1 row affected (0.18 sec) mysql> INSERT INTO IncrementBy1 VALUES(104,'Sam',199); Query OK, 1 row affected (0.36 sec) mysql> INSERT INTO IncrementBy1 VALUES(105,'Tom',999); Query OK, 1 row affected (0.18 sec)
সিলেক্ট স্টেটমেন্ট দিয়ে সব রেকর্ড দেখি:
mysql> SELECT * FROM IncrementBy1;
আউটপুট
+------+-------+--------------+ | Id | Name | CounterLogin | +------+-------+--------------+ | 100 | John | 30 | | 101 | Carol | 50 | | 102 | Bob | 89 | | 103 | Mike | 99 | | 104 | Sam | 199 | | 105 | Tom | 999 | +------+-------+--------------+ 6 rows in set (0.00 sec)
ডাটাবেস ফিল্ড ১ দিয়ে ইনক্রিমেন্ট করার ক্যোয়ারি:
mysql> UPDATE IncrementBy1
-> SET CounterLogin = CounterLogin + 1
-> WHERE Id = 105; Query OK, 1 row affected (0.45 sec) Rows matched: 1 Changed: 1 Warnings: 0
নির্দিষ্ট রেকর্ড ইনক্রিমেন্ট হয়েছে কিনা চেক করি। Id=105 যেখানে ৯৯৯ ছিল, সেটি ১ দিয়ে বৃদ্ধি পেয়ে ১০০০ হয়েছে:
mysql> SELECT * FROM IncrementBy1 WHERE Id = 105;
আউটপুট
+------+------+--------------+ | Id | Name | CounterLogin | +------+------+--------------+ | 105 | Tom | 1000 | +------+------+--------------+ 1 row in set (0.00 sec)