Problem Statement
Recently, while working with a MySQL database, I encountered an issue related to AUTO_INCREMENT behavior in a table named News. Initially, the table had five records, but I deleted the last two. Later, when inserting new data, I noticed that the id column was not sequentially picking up from where I expected. Instead of starting from 4, the next inserted record had an id of 6, skipping the deleted values.
This happens because MySQL's AUTO_INCREMENT does not automatically adjust after deletions. It simply remembers the highest used id and continues from there.
If you’re facing a similar issue and want the next inserted record to follow a custom id sequence, here’s how you can solve it.
Solution: Reset AUTO_INCREMENT
The fix is quite simple. You need to reset the AUTO_INCREMENT value to the desired number using the ALTER TABLE statement.
SQL Query to Reset AUTO_INCREMENT
ALTER TABLE News AUTO_INCREMENT = 4;
How This Works:
- The
ALTER TABLEcommand resets theAUTO_INCREMENTcounter. - In this case, setting
AUTO_INCREMENT = 4ensures that the next inserted record starts from4instead of skipping numbers. - This works only if no higher
idvalues exist in the table. If you already have anid = 6, settingAUTO_INCREMENT = 4will not work since6is already taken.
Check Your Highest ID Before Resetting
To avoid conflicts, you can check the highest existing id before resetting:
SELECT MAX(id) FROM News;
Then, set AUTO_INCREMENT accordingly.
Things to Keep in Mind
✅ MySQL & MariaDB Support: This method works for MySQL and MariaDB databases.
✅ Does Not Affect Existing Data: Resetting AUTO_INCREMENT does not modify existing records, only future inserts.
✅ Primary Key Integrity: Ensure there are no conflicting IDs before resetting AUTO_INCREMENT.
Top comments (0)