🎉 سال نو، مهارت نو، مشاوره رایگان نقشه راه برنامه نویسی (آفر ویژه ثبت نام قبل از افزایش قیمت 🔥)
۰ ثانیه
۰ دقیقه
۰ ساعت
۴ سهیل اصولی
ایدی دیتای وارد شده
محسن موحد حل شده توسط محسن موحد

سلام

وقتی که اقای صالحی دیتاهای قبلی رو پاک میکردن و مجدد کوئری میزدن و دیتا insert میشد، ایدی دیتاهای جدید از ادامه دیتاهای قبلی بود، مثلا ایدی 1و2و20و21.

سوال من اینه چجوری میشه کاری کرد که وقتی دیتا پاک شده، هنگام وارد شدن دیتای جدید، شماره ایدی از ادمه قبلی نباشه، مثلا 1و2و3و4و... باشه

سلام،

ببینید اصلا شماره آیدی اهمیتی نداره چند باشه مهم اینه بتونید هر عددی که داره بعنوان یک رابطه استفاده کنید و مورد دیگه در سیستم‌های بزرگ حذف فیزیکی نخواهیم داشت بعلت اینکه رابطه‌های زیادی بین جداول وجود دارد که باعث تاثیر روی بقیه خواهد بود و برای مثال بعنوان جایگزین از یک فیلد اضافه بنام confirmed یا published یا deleted یا ... استفاده میشود تا یک رکورد نمایش داده شود یا نه.

این موضوع اول که گفتم در جریانش باشید و وسواس هم بخرج ندید روی این مسئله که نیاز به کوئری مجزا داشته باشید. چون ممکنه وقتی delete ای انجام میدید اگر بخواهید فیلد AUTO_INCREMENT رو تغییری ایجاد کنید همون لحظه چند اینسرت بصورت همزمان اتفاق بیوفته که ساختار بهم بریزه یا delete‌ها بین یک بازه خاص اتفاق بیوفته که هر دو سمت بازه رکورد وجود داشته باشد.

 

اما روش ست کردن مقدار آیدی، میتونید مقدار AUTO_INCREMENT رو تغییر بدید.

اگر از طرق پنل بخواید سربرگ operation در جدول انتخابی داخل phpmyadmin یا بصورت کوئری:

ALTER TABLE `users` AUTO_INCREMENT = 1;

روش دیگر هم اینکه خودتون مقدار MAX آیدی را از جدول گرفته و آیدی بعدی رو مقدار دهی کنید که این‌ها پیشنهاد نمیشه.

بهترین پاسخ
محسن موحد ۰۳ آبان ۱۴۰۲، ۱۹:۰۳

من یه جدول دارم که یه سری رکورد رو به کاربر نمایش میده و دقیقا همین مشکل دارم یه سری دیتارو پاک کردم و نمایش به کاربر اینجوریه: 1و45و46 

برای همین دنبالش هستم که چجوری این مشکل رو حل کنم و دیتای مرتب به کاربر نمایش بدم

سهیل اصولی ۰۳ آبان ۱۴۰۲، ۱۹:۱۳

توضیحات رو کامل خدمتتون گفتم.

میتونید یا خودتون آیدی تولید کنید یا کوئری ALTER TABLE بزنید.

محسن موحد ۰۳ آبان ۱۴۰۲، ۱۹:۴۰

ممنونم

سهیل اصولی ۰۳ آبان ۱۴۰۲، ۱۹:۴۲