View Full Version : Identity Problem!
eyes_shut_number1
جمعه 23 آذر 1386, 22:01 عصر
با سلام و خسته نباشید! یک سوال کوچک! من توی برنامه که نوشتم به طور مثال یکی از پرایمری کی هام IDENTITY هست
هالا وقتی من آخرین رکورد را پاک میکنم به طور مثال رکوردی که Identity آن 49 است
رکورد بعدی رو که وارد میکنم Identity اونو میزنه 50 در صورتی که 49 وجود نداره!
اگه آخرین رکورد باشه میشه با Identity_insert On
ولی من میخوام بدون این کار به ترتیب بده اگه هم ایدنتیتی 49 حذف شد رکورد بعدی که وارد میشه ایدنتیتیش 49 باشه نه 50
ممنون میشن بکید چیکار کنم
SabaSabouhi
شنبه 24 آذر 1386, 10:51 صبح
با سلام و خسته نباشید! یک سوال کوچک! من توی برنامه که نوشتم به طور مثال یکی از پرایمری کی هام IDENTITY هست
هالا وقتی من آخرین رکورد را پاک میکنم به طور مثال رکوردی که Identity آن 49 است
رکورد بعدی رو که وارد میکنم Identity اونو میزنه 50 در صورتی که 49 وجود نداره!
اگه آخرین رکورد باشه میشه با Identity_insert On
ولی من میخوام بدون این کار به ترتیب بده اگه هم ایدنتیتی 49 حذف شد رکورد بعدی که وارد میشه ایدنتیتیش 49 باشه نه 50
ممنون میشن بکید چیکار کنم
با سلام
به صورت مستقیم راهى وجود نداره، چرا مىخواهید این کار رو بکنى.
اگه منظورت درست کردن یه چیزى مثل ردیف هست که مىخواهى Gap نداشته باشه یه ستون مجزا بگیر و یه Trigger کوچولو براش بنویس.
صبا صبوحى
eyes_shut_number1
شنبه 24 آذر 1386, 11:49 صبح
سلام و از دقتتون ممنون جواب سوال اول اینکه اون ایدنتیتی شما فرض کنید شماره فاکتور یا سند هست که این شماره نمیتونه گپ داشته باشه و ایدنتیتی هم هست در ضمن منظورتون از اینکه تریگر بنویسیم چیه تریگر باید چیکارکنه؟ باید راهی باشه ته اینکه یه ستون دیگه اضافه کرد و مقدار اونه هر دفعه +1 کرد! ممنون
Cave_Man
شنبه 24 آذر 1386, 12:22 عصر
سلام و از دقتتون ممنون جواب سوال اول اینکه اون ایدنتیتی شما فرض کنید شماره فاکتور یا سند هست که این شماره نمیتونه گپ داشته باشه و ایدنتیتی هم هست
شما باید یه فیلد جدا برای این مقصودتون استفاده کنید(منظرو برای فیلد شماره سند یا فاکتور)این مواردی رو که میخادی باید با کد نویسی و با مدیریت خودتون انجام بدید
ir_programmer
شنبه 24 آذر 1386, 14:58 عصر
درسته. یک تریگر کارت رو راه میندازه.
رضا عربلو
شنبه 24 آذر 1386, 17:44 عصر
این پست را نگاه کنید:
http://barnamenevis.org/forum/showthread.php?t=77015
سوال :
یک مشکلی که فیلد Idenity دارد این است که هنگامی که به هر دلیلی عملیات اینزرت به شکست انجامید در عمل اینزرت بعدی از شماره بعدی استفاده می شود.
و در موارد خاصی ممکن است که بخواهیم اعداد در هر صورتی پشت سر هم باشند
جواب از آقای ثباتی:
در این حالت باید ID رو خودتون تولید کنین. برای جلوگیری از تولید ID تکراری، میتونین آخرین ID رو در جدولی ذخیره کنین و یک SP داشته باشید که براتون ID جدید تهیه میکنه. در این SP، میبایست مقدار جدول رو با xlock بخونین و Update کنین تا در آن واحد، تنها یک کاربر بتونه مقداری رو از جدول بخونه. با توجه به اینکه چنین جدولی تنها یک فیلد و یک رکورد داره، مشکل همزمانی در فراخوانی SP نخواهید داشت چون کار در چند هزارم ثانیه انجام میشه
mhaeri
شنبه 24 آذر 1386, 19:32 عصر
مزایای گذاشتن فیلد Autonumber در جداول چیه؟
بهتر بگم جه مزیت داره؟ روی حجم های بالا چه طور چندین میلیون رکورد؟
ممنون
رضا عربلو
شنبه 24 آذر 1386, 19:39 عصر
مزیتش اینکه دیگه اصلا لازم نیست نگران فیلدهای تکراری باشی، در واقع اگر ایندکس یونیک دیگری روی تیبل تعریف نکرده باشی اصلاً فیلد تکراری نخواهی داشت.
بهترین مثال از کاربرد فیلد اتو نامبر یک LogFile است.
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.