نحوه تنظیم مجدد 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
بشر