টেবিল তৈরি করার সময় 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;