View Full Version : به هم ریختن شماره آیدی
7asemoon
جمعه 22 خرداد 1394, 18:08 عصر
یه سوال خیلی پیش پا افتاده دارم(البته نه برای خودم)
بعد از اینکه اطلاعات ثبت شده در جدول رو پاک میکنم چرا شماره آیدی ها از جایی که پاک شده دو مرتبه شروع نمیشه و از آخرین آیدی ثبت شده اضافه میشه
برای مثال:
1-ایران
2-آمریکا
3-انگلیس
4-برزیل
حالا من برزیل رو حذف میکنم
1-ایران
2-آمریکا
3-انگلیس
حالا یک رکورد دیگه ست میکنم و جدول به این صورت میشه
1-ایران
2-آمریکا
3-انگلیس
5-هند
راه حلی هست که الان هند شماره 4 بشه؟
7asemoon
جمعه 22 خرداد 1394, 23:16 عصر
لطفا جواب ....
pyramid_ali
دوشنبه 25 خرداد 1394, 10:45 صبح
خوب معلومه دیگه چون اسمش آیدیه! توی انجین های MyISAM و InnoDB اگه یک سطری رو AUTO_INCREMENT کنی یکی یک شماره ها چه حذف کنی چه حذف نکنی میره بالا! البته یک راهی که من دیدم ریست کردن Auto_increment با استفاده از alter هست! البته توی InnoDb نمی تونی AUTO_INCREMENT رو کمتر از آخرین شماره ای که تولید شده قرار بدی! ولی مثلا برای MyIُSAM می تونی سطر زیر رو بزنی!
ALTER TABLE tablename AUTO_INCREMENT = value
اگه نمی دونی هم که انجین جدولت چیه باید بگم که از نسخه ی 5.5 به بالا به صورت پیش فرض انجین InnoDB و قبل اون MyISAM بوده!
7asemoon
دوشنبه 25 خرداد 1394, 10:54 صبح
انجین InnoDB هست
pyramid_ali
دوشنبه 25 خرداد 1394, 23:03 عصر
اگه بگی به چه منظوری میخوای جای خالیه ایدی ها رو پر کنی بهتر میتونم کمکت کنم! ولی همچین کاری مرسوم نیست! دیتاهایی که ذخیره کردی رو حتما نیاز نیست حذف کنی! میتونی نشونشون ندی! بیشتر اسکریپت ها همین کارو میکنن چون احتمال پشیمونی واسه حذف یه داده همیشه پیش میاد!
raspina007
پنج شنبه 28 خرداد 1394, 05:07 صبح
درود
به نظرم اگه تیبل رو آپدیت کنه یا هیدن کنه راه بهتری هست واسش یا میتونه از یه فیلد استفاده کنه اما با روش
json_code
تغییر بده اینجوری با روش ارایه کار میکنه و مشکل ای دی واسش پیش نمیاد
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.