یک جدول users با ستون id AUTO_INCREMENT و name بسازید، یک رکورد جدید درج کنید و با استفاده از تابع LAST_INSERT_ID شناسه (id) رکورد درجشده را بازیابی کنید.
2.0 بازدید آخرین ویرایش در 202 روز قبل ساعت 03:05 0.0
در MySQL ابتدا جدولی با ستون id از نوع INT و صفت AUTO_INCREMENT ایجاد کنید، سپس یک INSERT برای اضافه کردن یک سطر اجرا کنید؛ بلافاصله پس از INSERT در همان نشست (connection) یک SELECT LAST_INSERT_ID() اجرا کنید تا مقدار id اختصاصیافته را دریافت کنید. توجه داشته باشید که LAST_INSERT_ID() فقط مقدار آخرین AUTO_INCREMENT در همان جلسه را برمیگرداند و تحت تأثیر درجهای دیگر در نشستهای دیگر قرار نمیگیرد؛ در کل از همان کانکشنی که INSERT انجام شده استفاده کنید تا نتیجه درست باشد.
1 پاسخ
جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من
در حال بارگیری...
برای ارسال پاسخ باید با حساب کاربری وارد شوید.
ورود به حساب کاربری
نکته کلیدی این کار این است که LAST_INSERT_ID() مقدار id تولیدشده توسط آخرین INSERT در همان کانکشن را برمیگرداند، پس حتماً INSERT و انتخاب مقدار با LAST_INSERT_ID() را پشتسر هم در همان نشست اجرا کنید. در صورت استفاده از تراکنش یا ORM، از خروجی همان INSERT یا متد مربوط به ORM برای گرفتن id استفاده کنید تا از همزمانی اشتباه جلوگیری شود. توجه کنید که LAST_INSERT_ID() صرفاً به کانکشن شما بستگی دارد و در صورت اجرای INSERT در کانکشنهای دیگر مقدار آن تغییری نخواهد کرد.
گزارش