برای جدول products (id INT PRIMARY KEY, name VARCHAR(100), price DECIMAL(10,2), stock INT) با استفاده از INSERT ... ON DUPLICATE KEY UPDATE و تابع VALUES() یک رکورد درج کنید و در صورت تکرار id مقدار stock را با مقدار درجشده جمع و مقدار price را بروزرسانی کنید.
1.0 بازدید آخرین ویرایش در 221 روز قبل ساعت 01:40 0.0
در MySQL از دستور INSERT ... ON DUPLICATE KEY UPDATE استفاده کنید و در بخش UPDATE با تابع VALUES(col) به مقادیر ارسالشده در بخش VALUES رجوع کنید، مثلاً: ON DUPLICATE KEY UPDATE stock = stock + VALUES(stock), price = VALUES(price). اطمینان حاصل کنید ستون id کلید اصلی یا یکتا دارد تا تکرار کلید فعال شود؛ همچنین توجه داشته باشید که در نسخههای جدید MySQL تابع VALUES() ممکن است منسوخ باشد و در آنها باید از سینتکس جایگزین استفاده کنید.
1 پاسخ
جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من
در حال بارگیری...
برای ارسال پاسخ باید با حساب کاربری وارد شوید.
ورود به حساب کاربری
نکته کلیدی این کار استفاده از INSERT ... ON DUPLICATE KEY UPDATE است تا هم مقدار stock با مقدار درجشده جمع شود و هم price بهروزرسانی گردد. حتماً ستون id را کلید اصلی یا یکتا تعریف کنید تا تکرار کلید فعال شود. در بخش UPDATE میتوانید به مقادیر ارسالشده با VALUES(col) دسترسی پیدا کنید، مثلاً stock = stock + VALUES(stock)، price = VALUES(price). توجه کنید که در نسخههای جدید MySQL تابع VALUES() ممکن است منسوخ شود و در آنها باید از سینتکس جایگزین استفاده کنید یا از روشهای دیگر برای دسترسی به مقادیر واردشده استفاده کنید.
گزارش