AUTO_INCREMENT অ্যাট্রিবিউট নতুন সারির জন্য ইউনিক আইডেন্টিফায়ার জেনারেট করতে ব্যবহৃত হয়। যদি কলাম NOT NULL ডিক্লেয়ার করা থাকে, তবে সেটিতে NULL অ্যাসাইন করলে সংখ্যা সিকোয়েন্স জেনারেট হয়।
যদি AUTO_INCREMENT কলামে যেকোনো ভ্যালু ইনসার্ট করা হয়, তবে কলামটি সেটি ভ্যালুতে সেট হয় এবং সিকোয়েন্সও রিসেট হয় যাতে সেটি সর্বোচ্চ কলাম ভ্যালু থেকে ক্রমাগত মান জেনারেট করতে পারে।
বিদ্যমান AUTO_INCREMENT কলাম আপডেট করলে AUTO_INCREMENT সিকোয়েন্সও রিসেট হয়। সবচেয়ে সাম্প্রতিক অটো-জেনারেটেড AUTO_INCREMENT ভ্যালু LAST_INSERT_ID() ফাংশন (SQL) বা mysql_insert_id() (C API) দিয়ে পাওয়া যায়।
এই ফাংশনগুলো কানেকশন-স্পেসিফিক, অর্থাৎ অন্য কানেকশনের ইনসার্ট অপারেশন থেকে এদের রিটার্ন ভ্যালু প্রভাবিত হয় না। AUTO_INCREMENT কলামের জন্য সবচেয়ে ছোট ইন্টিজার ডেটা টাইপ ব্যবহার করুন যা ব্যবহারকারীর প্রয়োজনীয় সর্বোচ্চ সিকোয়েন্স ভ্যালু ধারণ করতে পারে।
AUTO_INCREMENT-এর নিয়মাবলী
- প্রতিটি টেবিলে শুধু একটি
AUTO_INCREMENTকলাম থাকে, যার ডেটা টাইপ সাধারণত ইন্টিজার। AUTO_INCREMENTকলাম অবশ্যই ইনডেক্সড থাকতে হবে (PRIMARY KEY বা UNIQUE ইনডেক্স)।AUTO_INCREMENTকলামেNOT NULLকনস্ট্রেইন্ট থাকতে হবে।AUTO_INCREMENTঅ্যাট্রিবিউট সেট করলে MySQL অটোমেটিক্যালি কলামেNOT NULLকনস্ট্রেইন্ট যোগ করে।
যদি টেবিলে id কলাম না থাকে, তবে নিচের স্টেটমেন্ট ব্যবহার করুন:
ALTER TABLE tableName ADD id INT UNSIGNED NOT NULL AUTO_INCREMENT, ADD INDEX (id);
যদি id কলাম ইতিমধ্যে থাকে, তবে নিচের কমান্ড ব্যবহার করুন:
ALTER TABLE tableName AUTO_INCREMENT = specificValue;
এখানে tableName = টেবিলের নাম যেটির AUTO_INCREMENT কলাম সেট করতে হবে। specificValue = ইন্টিজার ভ্যালু যেখান থেকে ব্যবহারকারী AUTO_INCREMENT মান শুরু করতে চায়।