یک جدول 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 انجام شده استفاده کنید تا نتیجه درست باشد.

توسط پژوهشگر در 202 روز قبل ساعت 03:05
دسته بندی ها: MySQL MySQL for beginner
arash در 202 روز قبل ساعت 07:34

نکته کلیدی این کار این است که LAST_INSERT_ID() مقدار id تولیدشده توسط آخرین INSERT در همان کانکشن را برمی‌گرداند، پس حتماً INSERT و انتخاب مقدار با LAST_INSERT_ID() را پشت‌سر هم در همان نشست اجرا کنید. در صورت استفاده از تراکنش یا ORM، از خروجی همان INSERT یا متد مربوط به ORM برای گرفتن id استفاده کنید تا از هم‌زمانی اشتباه جلوگیری شود. توجه کنید که LAST_INSERT_ID() صرفاً به کانکشن شما بستگی دارد و در صورت اجرای INSERT در کانکشن‌های دیگر مقدار آن تغییری نخواهد کرد.

گزارش

1 پاسخ

جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من

در حال بارگیری...
ورود به حساب کاربری