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

MySQL-এ AUTO_INCREMENT ভুলে গেলে পরবর্তীতে ALTER TABLE দিয়ে যোগ করা

টেবিল তৈরি করার সময় AUTO_INCREMENT ভুলে গেলেও, পরে ALTER TABLE ... MODIFY COLUMN দিয়ে এটি যোগ করা যায়।

পরিস্থিতি: AUTO_INCREMENT ছাড়া টেবিল

CREATE TABLE forgot_auto_inc_demo (
    student_id INT,
    student_name VARCHAR(30)
);

DESC আউটপুট (Extra কলামে auto_increment নেই)

+-------------+-------------+------+-----+---------+-------+
| Field       | Type        | Null | Key | Default | Extra |
+-------------+-------------+------+-----+---------+-------+
| student_id  | int(11)     | YES  |     | NULL    |       |
| student_name| varchar(30) | YES  |     | NULL    |       |
+-------------+-------------+------+-----+---------+-------+

AUTO_INCREMENT যোগ করা

ALTER TABLE forgot_auto_inc_demo 
MODIFY COLUMN student_id INT NOT NULL AUTO_INCREMENT PRIMARY KEY;

পরিবর্তন পর DESC আউটপুট

+-------------+-------------+------+-----+---------+----------------+
| Field       | Type        | Null | Key | Default | Extra          |
+-------------+-------------+------+-----+---------+----------------+
| student_id  | int(11)     | NO   | PRI | NULL    | auto_increment |
| student_name| varchar(30) | YES  |     | NULL    |                |
+-------------+-------------+------+-----+---------+----------------+

Extra কলামে auto_increment দেখা যাচ্ছে।

ডেটা ইনসার্ট টেস্ট

INSERT INTO forgot_auto_inc_demo (student_name) VALUES ('Larry'), ('Chris'), ('Robert');

SELECT * FROM forgot_auto_inc_demo;

ফলাফল

+-----------+-------------+
| student_id| student_name|
+-----------+-------------+
| 1         | Larry       |
| 2         | Chris       |
| 3         | Robert      |
+-----------+-------------+

দ্রষ্টব্য

  • MODIFY COLUMN-এ পুরো কলাম ডেফিনিশন লিখতে হয় (ডেটা টাইপ, NOT NULL, AUTO_INCREMENT, PRIMARY KEY)
  • যদি কলামে ইতিমধ্যে ডেটা থাকে, তবে ডুপ্লিকেট বা NULL মান থাকলে এরর হবে
  • খালি টেবিলে সবচেয়ে নিরাপদ
  • MySQL 8.0.13+ এ ALTER TABLE ... ALTER COLUMN ... SET DEFAULT সিনট্যাক্সও কাজ করে

AUTO_INCREMENT মান রিসেট/সেট করা

ALTER TABLE forgot_auto_inc_demo AUTO_INCREMENT = 1000;
  1. MySQL-এ টেবিল TRUNCATE করে AUTO_INCREMENT কাস্টম মান থেকে শুরু করা

  2. MySQL에서 데이터 삭제 후 AUTO_INCREMENT를 1부터 다시 시작하려면 TRUNCATE

  3. MySQL-এ ZEROFILL এবং কাস্টম AUTO_INCREMENT সেট করা

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