AUTO_INCREMENT প্রাইমারি কীকে ১ থেকে পুনরায় শুরু করতে TRUNCATE TABLE এবং ALTER TABLE ... AUTO_INCREMENT = 1 ব্যবহার করা হয়।
টেবিল তৈরি
mysql> CREATE TABLE DemoTable1929 (
UserId INT NOT NULL AUTO_INCREMENT,
PRIMARY KEY (UserId)
);
ডেটা ইনসার্ট
mysql> INSERT INTO DemoTable1929 VALUES (), (), (); -- ১, ২, ৩
রিসেট করার আগে
mysql> SELECT * FROM DemoTable1929;
+--------+ | UserId | +--------+ | 1 | | 2 | | 3 | +--------+
প্রাইমারি কী রিসেট করা (২ ধাপ)
mysql> TRUNCATE TABLE DemoTable1929; -- সব ডেটা মুছে দেয় এবং AUTO_INCREMENT রিসেট করে mysql> ALTER TABLE DemoTable1929 AUTO_INCREMENT = 1; -- নিশ্চিত করতে (TRUNCATE আটো করে, কিন্তু এক্সপ্লিসিটও করা যায়)
আউটপুট: Query OK, 0 rows affected
নতুন ডেটা ইনসার্ট (১ থেকে শুরু)
mysql> INSERT INTO DemoTable1929 VALUES (), ();
ফলাফল যাচাই
mysql> SELECT * FROM DemoTable1929;
+--------+ | UserId | +--------+ | 1 | | 2 | +--------+
গুরুত্বপূর্ণ পার্থক্য: TRUNCATE vs DELETE
| বিষয় | TRUNCATE TABLE | DELETE FROM table |
|---|---|---|
| AUTO_INCREMENT রিসেট | হ্যাঁ (১ থেকে) | না (বছা থাকে) |
| রোলব্যাক সম্ভব | না (DDL) | হ্যাঁ (DML) |
| ট্রিগার ফায়ার | না | হ্যাঁ |
| দ্রুত | খুব দ্রুত | ধীর (Row by row) |
| WHERE ক্লজ | না | হ্যাঁ |
শুধু AUTO_INCREMENT মান পরিবর্তন (ডেটা রাখতে চাইলে)
ALTER TABLE DemoTable1929 AUTO_INCREMENT = 100;
এটি শুধু পরবর্তী অটো-জেনারেটেড মান নির্ধারণ করে, বিদ্যমান ডেটা অপ্রভাবিত থাকে।