برنامه نویسی

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


نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا