AUTO_INCREMENT রিসেট করার পদ্ধতি
সব ডেটা ডিলিট করে প্রাইমারি কি ১ থেকে শুরু করতে TRUNCATE TABLE ব্যবহার করুন। এটি AUTO_INCREMENT কাউন্টারও রিসেট করে।
সিনট্যাক্স
ALTER TABLE yourTableName AUTO_INCREMENT = 1; TRUNCATE TABLE yourTableName;
উদাহরণ
টেবিল তৈরি
mysql> create table resettingPrimaryKeyDemo (
-> UserId int NOT NULL AUTO_INCREMENT PRIMARY KEY
-> );
Query OK, 0 rows affected (0.66 sec)
৪ রো ইনসার্ট (ID: 1,2,3,4)
mysql> insert into resettingPrimaryKeyDemo values(); Query OK, 1 row affected (0.15 sec) mysql> insert into resettingPrimaryKeyDemo values(); Query OK, 1 row affected (0.10 sec) mysql> insert into resettingPrimaryKeyDemo values(); Query OK, 1 row affected (0.08 sec) mysql> insert into resettingPrimaryKeyDemo values(); Query OK, 1 row affected (0.12 sec)
ডেটা যাচাই
mysql> SELECT * FROM resettingPrimaryKeyDemo;
আউটপুট
+--------+ | UserId | +--------+ | 1 | | 2 | | 3 | | 4 | +--------+
AUTO_INCREMENT রিসেট ও ট্রানকেট
mysql> ALTER TABLE resettingPrimaryKeyDemo AUTO_INCREMENT = 1; Query OK, 0 rows affected (0.14 sec) mysql> TRUNCATE TABLE resettingPrimaryKeyDemo; Query OK, 0 rows affected (0.89 sec)
টেবিল খালি
mysql> SELECT * FROM resettingPrimaryKeyDemo; Empty set (0.00 sec)
পুনরায় ইনসার্ট (ID আবার ১ থেকে)
mysql> insert into resettingPrimaryKeyDemo values(); Query OK, 1 row affected (0.12 sec) mysql> insert into resettingPrimaryKeyDemo values(); Query OK, 1 row affected (0.10 sec) mysql> insert into resettingPrimaryKeyDemo values(); Query OK, 1 row affected (0.10 sec)
ফাইনাল আউটপুট
+--------+ | UserId | +--------+ | 1 | | 2 | | 3 | +--------+
গুরুত্বপূর্ণ: TRUNCATE DDL অপারেশন, রোলব্যাক হয় না, ট্রিগার ফায়ার হয় না। ফরেন কি রেফারেন্স থাকলে কাজ নাও করতে পারে। DELETE FROM table দিয়ে শুধু ডেটা মুছে AUTO_INCREMENT রিসেট হয় না।