Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP][MYSQL]Działanie on duplicate key update...
-Zsert-
post
Post #1





Goście







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?
Go to the top of the page
+Quote Post
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




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;


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
-Zsert-
post
Post #3





Goście







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.
Go to the top of the page
+Quote Post
nospor
post
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Jesli wiesz ze cos edytujesz to rób UPDATE. Do tego sluzy.

ON DUPLICATE KEY UPDATE sluzy do innych celow


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
-Zsert-
post
Post #5





Goście







Do czego można on duplicate key update wykorzystać ?
Go to the top of the page
+Quote Post
nospor
post
Post #6





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




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.


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
-Zsert-
post
Post #7





Goście







Też przydatne jest. Dzięki za wszystko smile.gif
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 21.08.2025 - 08:34