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

MySQL-এ ইনিশিয়াল ভ্যালু ও অটো-ইনক্রিমেন্ট সেট করা


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 মান শুরু করতে চায়।

  1. MySQL-এ DEFAULT 'NONE' সেট করে কলামের ডিফল্ট মান নির্ধারণ করা

  2. MySQL-এ ডিফল্ট মান NULL সেট করা

  3. MySQL-এ IF() এবং টাইমস্ট্যাম্প ব্যবহার করে ২ বছরের বেশি পুরনো রেকর্ডকে বুলিয়ান ফ্ল্যাগে রূপান্তর করা

  4. MySQL-এ ZEROFILL ব্যবহার করে কলাম মান 앞에 ০০০ যোগ করা