یک جدول users با ستون id از نوع AUTO_INCREMENT و ستون name ایجاد کنید، یک رکورد جدید وارد کنید و سپس شناسه خودکار ایجاد شده را با استفاده از تابع LAST_INSERT_ID() بازیابی نمایید.
15.0 بازدید آخرین ویرایش در 201 روز قبل ساعت 03:51 0.0
برای حل این مسئله ابتدا یک جدول ساده با ستون id AUTO_INCREMENT و ستون name بسازید، سپس با یک دستور INSERT یک ردیف جدید اضافه کنید و بلافاصله در همان جلسه ارتباطی (connection) از SELECT LAST_INSERT_ID() استفاده کنید تا مقدار id تولیدشده را دریافت کنید. توجه داشته باشید که LAST_INSERT_ID() به سطح اتصال محدود است و در تراکنشها یا چند اتصال همزمان مقدار درست را بازمیگرداند اگر در همان اتصال فراخوانی شود؛ همچنین میتوانید این فراخوانی را در برنامهنویسی با استفاده از API درایور بانکاطلاعاتی (مثلاً متد insertId در برخی کتابخانهها) مدیریت کنید.
1 پاسخ
جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من
در حال بارگیری...
برای ارسال پاسخ باید با حساب کاربری وارد شوید.
ورود به حساب کاربری
برای بازیابی id خودکار پس از INSERT، مقدار LAST_INSERT_ID() را فوراً در همان اتصال اجرا کنید. LAST_INSERT_ID() تنها به سطح همان اتصال بستگی دارد و در تراکنشها یا بین اتصالات مختلف مقدار صحیح را ارائه نمیکند مگر اینکه فراخوانی در همان اتصال انجام شود. در اکثر درایورها، مقدار insertId یا خروجی مشابه را مستقیماً پس از INSERT دریافت میکنید. بنابراین بهترین روش، اجرای INSERT و دریافت id را در همان روند اتصال نگه دارید تا از همزمانی و ناسازگاری جلوگیری شود.
گزارش