نحوه تنظیم مجدد Auto_increment در MySQL پس از حذف ردیف ها

بیانیه مشکل
به تازگی ، در حالی که با یک پایگاه داده MySQL کار می کنم ، با یک مسئله مرتبط با آن روبرو شدم AUTO_INCREMENT رفتار در یک جدول به نام Newsبشر در ابتدا ، جدول دارای پنج رکورد بود ، اما من دو مورد آخر را حذف کردم. بعداً ، هنگام وارد کردن داده های جدید ، متوجه شدم که id ستون به طور متوالی از جایی که انتظار داشتم انتخاب نمی شد. به جای شروع از 4، رکورد درج شده بعدی دارای یک id از 6، پرش از مقادیر حذف شده.
این اتفاق می افتد زیرا MySQL است AUTO_INCREMENT بعد از حذف به طور خودکار تنظیم نمی شود. این به سادگی بالاترین مورد استفاده را به یاد می آورد id و از آنجا ادامه می یابد.
اگر با یک مسئله مشابه روبرو هستید و می خواهید سوابق بعدی درج شده را دنبال کند id دنباله ، در اینجا چگونه می توانید آن را حل کنید.
راه حل: تنظیم مجدد Auto_increment
رفع آن بسیار ساده است. شما نیاز به تنظیم مجدد AUTO_INCREMENT مقدار به شماره مورد نظر با استفاده از ALTER TABLE بیانیه
پرس و جو SQL برای تنظیم مجدد Auto_increment
ALTER TABLE News AUTO_INCREMENT = 4;
چگونه این کار می کند:
- در
ALTER TABLEفرمان تنظیم مجددAUTO_INCREMENTشمارنده - در این حالت ، تنظیم
AUTO_INCREMENT = 4تضمین می کند که سابقه درج بعدی از آن شروع می شود4به جای پرش از اعداد. - این فقط در صورت بالاتر کار می کند
idمقادیر در جدول وجود دارد. اگر قبلاًid = 6، تنظیمAUTO_INCREMENT = 4از آن زمان کار نخواهد کرد6قبلاً گرفته شده است
قبل از تنظیم مجدد ، بالاترین شناسه خود را بررسی کنید
برای جلوگیری از درگیری ، می توانید بالاترین موجود موجود را بررسی کنید id قبل از تنظیم مجدد:
SELECT MAX(id) FROM News;
سپس ، تنظیم کنید AUTO_INCREMENT بر این اساس
چیزهایی که باید در خاطر داشته باشید
✅ پشتیبانی MySQL و MARIADB: این روش برای پایگاه داده های MySQL و MARIADB کار می کند.
✅ بر داده های موجود تأثیر نمی گذارد: تنظیم مجدد AUTO_INCREMENT سوابق موجود را تغییر نمی دهد ، فقط درج های آینده.
✅ یکپارچگی اصلی کلیدی: قبل از تنظیم مجدد ، اطمینان حاصل کنید که هیچ شناسه متناقضی وجود ندارد AUTO_INCREMENTبشر



