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

MySQL-এ প্রাইমারি কী রিসেট করা (TRUNCATE + ALTER TABLE)

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 TABLEDELETE FROM table
AUTO_INCREMENT রিসেটহ্যাঁ (১ থেকে)না (বছা থাকে)
রোলব্যাক সম্ভবনা (DDL)হ্যাঁ (DML)
ট্রিগার ফায়ারনাহ্যাঁ
দ্রুতখুব দ্রুতধীর (Row by row)
WHERE ক্লজনাহ্যাঁ

শুধু AUTO_INCREMENT মান পরিবর্তন (ডেটা রাখতে চাইলে)

ALTER TABLE DemoTable1929 AUTO_INCREMENT = 100;

এটি শুধু পরবর্তী অটো-জেনারেটেড মান নির্ধারণ করে, বিদ্যমান ডেটা অপ্রভাবিত থাকে।

  1. MySQL-এ information_schema দিয়ে কম্পোজিট প্রাইমারি কী চিহ্নিত করা

  2. MySQL에서 기본 키(Primary Key) 삭제하기

  3. MySQL-এ INFORMATION_SCHEMA ব্যবহার করে কোন কলাম PRIMARY KEY সেটা যাচাই করা

  4. MySQL-এ প্রাইমারি কীকে অন্য টেবিলে ফরেন কী হিসেবে রেফার করা