ورود

View Full Version : مشکل با auto_increment



mehdi.nine
چهارشنبه 17 فروردین 1390, 00:31 صبح
سلام.

من یه جدول دارم که یکی از فیلدهایه اونو auto_increment گذاشتم حالا من 5تا داده بهش وارد کردم در نتیجه

این فیلد از 1تا 5 شماره گذاری شدند حالا من رکورد دوم جدول رو که شمارش 2 بود رو پاک کردم و بعد از اوت یک رکورد جدید به جدولم اضافه کردم.

حالا شماره ای دی این جدول 6 شد درحالی که شماره 2 نداریم(چون من اونو پاک کردم).

حالا من می خوام بدونم چی کار کنم که اگه خواستم رکورد جدیدی اضافه کنم بره از اول بگرده و شماره جامونده رو

اضافه کنه(در اینجا 2).

s_keivani
شنبه 20 فروردین 1390, 12:09 عصر
سلام.

من یه جدول دارم که یکی از فیلدهایه اونو auto_increment گذاشتم حالا من 5تا داده بهش وارد کردم در نتیجه

این فیلد از 1تا 5 شماره گذاری شدند حالا من رکورد دوم جدول رو که شمارش 2 بود رو پاک کردم و بعد از اوت یک رکورد جدید به جدولم اضافه کردم.

حالا شماره ای دی این جدول 6 شد درحالی که شماره 2 نداریم(چون من اونو پاک کردم).

حالا من می خوام بدونم چی کار کنم که اگه خواستم رکورد جدیدی اضافه کنم بره از اول بگرده و شماره جامونده رو

اضافه کنه(در اینجا 2).


این کار منطقاً اشتباهه. این شماره میتونه نگه دارنده کل رکوردهایی باشه که روی اون جدول ایجاد شده!
با اینحال میتونی فیلد شماره رو طی یک کوئری بخونی و توی یک حلقه که از 0 شروع میشه اندیس حلقه رو با فیلد شماره fetch شده مقایسه کنی...و به محض رسیدن به اولین اختلاف در واقع به اولین شماره خالی رسیدی !

mehdi.nine
یک شنبه 21 فروردین 1390, 01:27 صبح
سلام دوست عزیز.
ممنون از اینکه جواب دادی.
من خودم پیگیر این سوال بودم و فهمیدم که رو فیلدهایه auto_icrement هیچ تغییری نمی توان ایجاد کرد.

pesar irooni
یک شنبه 21 فروردین 1390, 15:47 عصر
و فهمیدم که رو فیلدهایه auto_icrement هیچ تغییری نمی توان ایجاد کرد.
البته نه هیچ تغییری
در T-SQL که میشه seed و مقدار اضافه شده رو تغییر داد. ضمنا اگه چند تا از سطرهات رو پاک کرد میشه مقدار فیلد رو به بزرگترین عدد موجود در ستون تغییر داد. حتی میتونی به هر عددی که دوست داری تغییر بدی (که البته خطرناکه) . همه این کارها توسط دستور ressed انجام میشه. احتمالا mysql هم باید بتونه یه چنین کارایی بکنه.