Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MYSQL]Działanie on duplicate key update...
Forum PHP.pl > Forum > Przedszkole
Zsert
Czy on duplicate key update działa tak samo jak UPDATE tzn że aktualizuje rekordy ale o tym samym id czy działa jak replace tzn kasuje wskazany rekord i zapisuje jako rekord o innym id np. mam jakiś rekord o id 1 replace robi tak że kasuje ten rekord o id 1 i dodaje nowy o id 2. Jak działa on duplicate key update?
nospor
http://dev.mysql.com/doc/refman/5.0/en/ins...-duplicate.html

Cytat
If you specify ON DUPLICATE KEY UPDATE, and a row is inserted that would cause a duplicate value in a UNIQUE index or PRIMARY KEY, an UPDATE of the old row is performed. For example, if column a is declared as UNIQUE and contains the value 1, the following two statements have identical effect:

INSERT INTO table (a,b,c) VALUES (1,2,3)
ON DUPLICATE KEY UPDATE c=c+1;

UPDATE table SET c=c+1 WHERE a=1;
Zsert
Ok dzięki. Efekt ten sam to spoko. A który bardziej byście polecali do używania tzn które jest wydajniejsze UPDATE czy On Duplicate key update np. w przypadku edycji newsów itp.
nospor
Jesli wiesz ze cos edytujesz to rób UPDATE. Do tego sluzy.

ON DUPLICATE KEY UPDATE sluzy do innych celow
Zsert
Do czego można on duplicate key update wykorzystać ?
nospor
przyklad:
robisz tabele i w niej trzymasz info ile razy z danego IP bylo odwolan.

Robisz wiec:
  1. INSERT INTO TABLE (IP,ILOSC) VALUES ('ip',1) ON DUPLICATE KEY UPDATE ILOSC=ILOSC+1;

Oczywisci kluczem jest IP.
Jesli nie ma danego IP w bazie to wpisze ci rekord z danym IP i da ilosc =1. jesli IP jest to zwiekszy ilosc o 1. Nie musisz sie tu bawic w selecty sprawdzajace czy jest czy nie.
Zsert
Też przydatne jest. Dzięki za wszystko smile.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.