MySQL কলামে AUTO_INCREMENT ব্যবহার করলে সিকোয়েন্স নম্বর সর্বদা ডিফল্ট মান ১ বা নির্দিষ্ট মান থেকে আরোহী ক্রমে বৃদ্ধি পায়।
এই কারণেই, MySQL AUTO_INCREMENT মানকে বর্তমান সিকোয়েন্স নম্বর থেকে কম মানに変更 করার অনুমতি দেয় না। নিচের উদাহরণটি এটি বোঝাতে সাহায্য করবে −
উদাহরণ
এই উদাহরণে মনে করুন 'emp1' নামে একটি টেবিল আছে এবং টেবিল তৈরি করার সময় AUTO_INCREMENT VALUE ১০০ নির্দিষ্ট করা হয়েছে। অতএব টেবিলে মান ইনসার্ট করার পর সিকোয়েন্স ১০০ থেকে শুরু হবে যা নিচের কোয়ারিটির আউটপুট থেকে দেখা যাচ্ছে −
mysql> Select * from emp1; +-----+---------+ | id | NAME | +-----+---------+ | 100 | Sohan | | 101 | Harshit | +-----+---------+ 2 rows in set (0.00 sec)
এখন ALTER TABLE কোয়ারিটি দিয়ে AUTO_INCREMENT মান ৯০ করতে চাইলে MySQL কোনো এরর বা সতর্কতা দেয় না কারণ কোয়ারিটি টি ঠিক আছে কিন্তু যখন টেবিলে নতুন মান ইনসার্ট করা হবে, MySQL নির্দিষ্ট AUTO_INCREMENT মানকে বর্তমান সিকোয়েন্স নম্বর সাথে তুলনা করবে। যেহেতু নির্দিষ্ট AUTO_INCREMENT মান (৯০) বর্তমান সিকোয়েন্স নম্বর (১০১) থেকে কম, MySQL নতুন মানগুলো ১০২ থেকে শুরু করবে যা নিচের কোয়ারিটিগুলো থেকে পর্যবেক্ষণ করা যাবে −
mysql> ALTER TABLE EMP1 AUTO_INCREMENT = 90; Query OK, 2 rows affected (0.31 sec) Records: 2 Duplicates: 0 Warnings: 0 mysql> Insert into emp1(name) values('Aryan'); Query OK, 1 row affected (0.08 sec) mysql> Select * from emp1; +-----+---------+ | id | NAME | +-----+---------+ | 100 | Sohan | | 101 | Harshit | | 102 | Aryan | +-----+---------+ 3 rows in set (0.00 sec)বিপরীতভাবে, যদি বর্তমান সিকোয়েন্স নম্বর থেকে বেশি মানে AUTO_INCREMENT পরিবর্তন করার চেষ্টা করা হয় তবে MySQL নির্দিষ্ট মান থেকে নতুন মান জমা করা শুরু করবে।
এটি আরও স্পষ্ট করার জন্য 'emp1' টেবিলে AUTO_INCREMENT মান ১০৮ করি, যা বর্তমান সিকোয়েন্স নম্বর থেকে বেশি, অতএব MySQL নতুন ইনসার্ট করা মানগুলো নির্দিষ্ট AUTO_INCREMENT মান অর্থাৎ ১০৮ থেকে শুরু করবে।
mysql> ALTER TABLE EMP1 AUTO_INCREMENT = 108; Query OK, 3 rows affected (0.30 sec) Records: 3 Duplicates: 0 Warnings: 0 mysql> Insert into emp1(name) values('Daksh'); Query OK, 1 row affected (0.04 sec) mysql> Insert into emp1(name) values('Yashraj'); Query OK, 1 row affected (0.06 sec) mysql> Select * from emp1; +-----+---------+ | id | NAME | +-----+---------+ | 100 | Sohan | | 101 | Harshit | | 102 | Aryan | | 108 | Daksh | | 109 | Yashraj | +-----+---------+ 5 rows in set (0.00 sec)