PDA

View Full Version : insert کردن همزمان id در دو فیلد



saeed-71
چهارشنبه 21 خرداد 1393, 10:09 صبح
سلام.
من دارم یه پروژه تمرینی تیکتینگ و پشتیابنی مینویسم.


فیلد id خودکار پر میشه و میره بالا

حالا من میخوام وقتی یه تیکت ثبت میشه و id تو دیتابیس فیلد اول ثبت میشه تو فیلد idp هم ثبت بشه.اما id خدوکار ثبت میشه چجوری این کار رو کنم؟

aalmair
چهارشنبه 21 خرداد 1393, 10:16 صبح
می تونی از sql روبه رو بعد از درج در جدول استفاده کنی و آخرین id درج شده رو در بیاری
select LAST_INSERT_ID() ;

saeed-71
چهارشنبه 21 خرداد 1393, 10:22 صبح
خوب شاید چندین کاربر همزمان چندین isert انجام بدن!

aalmair
چهارشنبه 21 خرداد 1393, 10:32 صبح
چیزی به نام همزمان در کامپیوتر وجود نداره وقتی یک query انجام میشه تا تموم نشدنش query دوم انجام نمیشه .
و می تونی بری و مستندات mysql در این زمینه رو بخونی
http://dev.mysql.com/doc/refman/5.1/en/information-functions.html#function_last-insert-id

saeed-71
چهارشنبه 21 خرداد 1393, 10:44 صبح
پس یعنی اگه هزارتا یوزر همرمان یه چیزیو بخوان وارد دیتابیس بکنن یکی یکی پشت سر هم و بعد از اتمام قبلی انجام میشه؟!
نمیدونستم!

MMSHFE
چهارشنبه 21 خرداد 1393, 16:00 عصر
این مسئله ممکنه که بعد از تمام شدن کوئری اول شما و قبل از زمانی که با دستوری مثل mysql_insert_id در PHP یا کوئری که دوستمون گذاشتن آخرین ID رو بدست بیارین، یک کاربر دیگه بیاد و یک رکورد جدید ثبت کنه ولی دقت کنید که MySQL خودش مدیریت سشن داره یعنی اینکه LAST_INSERT_ID به شما آخرین ID که روی همین اتصال (اتصال شما بهش) تولید شده رو میده و کاری به بقیه کاربران نداره و حتی به آخرین ID که الان توی جدول هست هم کاری نداره. پس با خیال راحت ازش استفاده کنید.