PDA

View Full Version : ON DUPLICATE KEY UPDATE



king-net
شنبه 07 آبان 1390, 21:31 عصر
لطفا یک توضیح کاملی بدید و اگه میشه مثال هم بزنید

king-net
دوشنبه 09 آبان 1390, 23:19 عصر
یعنی واقعا کسی تو این سایت بلد نیست ؟ شایدم بلد هستن اما نمیخوان یاد بدن :متفکر::عصبانی++:

Reza1607
چهارشنبه 11 آبان 1390, 23:49 عصر
dev.mysql.com/doc/refman/5.0/en/insert-on-duplicate.html

hosseintdk775
پنج شنبه 12 آبان 1390, 03:42 صبح
بسم الله الرحمن الرحیم
سلام
وقتی می خوای مقداری به جدولت وارد کنی و یه فیدلی که یونیک تعیین شده و مقداری که وارد می کنی تکراری باشه خوب اینجاست که خطا می گیره
به این دستور که به ته کويریت اضافه می کنی می تونی بگی که مثلا اگه مقدار فیلد x تکراری بود (که قبلا خطا می داد) بجاش مقدار فیلد y رو تغییر بده

مثلا دو فیلد داری یکی -نام کاربری- (نام کاربری رو هم unique فرض کن) و یکی هم -تعداد ویزیت- اینجا می تونی از این دستور استفاده کنی که وقتی insert می کنی و اگه هیچ مقداری تو بحالت به اون نام کاربری ثبت نشده بود که مقدار های تعیین شده وارد جدولت می شه

ولی اگه نام کاربری که قبلا وجود داشت (خوب خطا می گیری) که با این کد ON DUPLICATE KEY UPDATE می تونی بگی که اگه این نام کاربری بود بجاش مثلا مقدار فیلد -تعداد ویزیت- رو آپدیت کنه

که این باعث می شه بجای اینکه دوبار کوئری بفرستی (یکیش select که ببینی همچین نام کاربری قبلا ثبت شده یا نه / و اون یکی یا insert و یا update) که بجاش بتونی از یک کوئری با این ساختار استفاده کنی

کوئری برای این مثالی که زدم می شه این:

insert into MYTABLE (username, total_visits) VALUE ('hossein', '1') ON DUPLICATE KEY UPDATE total_visits=total_visits+1;


اون لینکی هم که دوستمون دادن رو مطالعه کنی بهتره

( اگه بد توضیح دادم ببخشید دیگه :خجالت: )