PDA

نسخه کامل مشاهده نسخه کامل : اضافه کردن سطر جدید (مهم)



mahdi.Violin
01-12-2011, 12:35
سلام
مهندسین یه سوال :
من یه جدول دارم با دو ستون
Ali 1
Mohamd 2
3 Reza
4 TAghi
5 nima
کد افراد به وسیله max+1 بدست میاد
حالا اگر کد 2 و 3 حذف بشن و من max+1 بگیرم کد 6 رو به من میده ولی من می خوام کد 2 به من بده .

به نظر شما تابعی هست که این کار رو انجام بده .

مرسی

neopersia
02-12-2011, 17:47
سلام

فکر نمیکنم روشی که شما در نظر گرفتید اصلاً مناسب باشه. برای چه کاری این شماره ها رو لازم دارید؟

mahdi.Violin
03-12-2011, 15:32
سلام

فکر نمیکنم روشی که شما در نظر گرفتید اصلاً مناسب باشه. برای چه کاری این شماره ها رو لازم دارید؟
نگاه کنید برای مثال ما یک جدول کلمات داریم کاربران کلمات خودشون رو ذخیره می کنن . (پس خیلی از کلمات اضافه میشن و خیلی حذف اگر ما شناسه رو ID گرفته باشیم و مقدار جدید ID برابر MAX باشه ، خیلی از رکورده ID خالی می مونن . شاید bigint هم جواب نده

neopersia
03-12-2011, 23:04
خوب کاری که شما میخواهید انجام بدید از نظر منطقی با روشی که انتخاب کردید همخوانی نداره. تابع max بزرگترین عدد وارد شده در فیلد رو برمیگردونه کاری هم نداره که چند رکورد قبل از اون عدد حذف شده باشه یا نه
تازه اگر فکر میکنید انقدر اطلاعات وارد جدول میشه که bigint هم جواب نمیده باید این رو هم در نظر بگیرید که max در هر بار اجرا شدن باید همه این رکوردها رو بخونه و بررسی کنه که در نتیجه سرور دو سوته به گریه و زاری میافته!

تنها کاری که میشه انجام داد اینه که از اول تک تک رکورد ها رو چک کنید ببینید چیزی حذف شده یا نه و اگر حذف شده بود از همون عدد دوباره استفاده کنید (که هم منطقی نیست و هم همون مشکل گریه و زاری سرور رو دوباره ایجاد میکنه) یا اینکه همون روش عادی و استفاده از auto_increment یا همون Identity رو استفاده کنید و مطمئن باشید که به این راحتی ها bigint یا حتی int از رو نمیره:دی