![]() |
![]() ![]() |
![]() |
-Zsert- |
![]()
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?
|
|
|
![]()
Post
#2
|
|
Grupa: Moderatorzy Postów: 36 559 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; |
|
|
-Zsert- |
![]()
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.
|
|
|
![]()
Post
#4
|
|
Grupa: Moderatorzy Postów: 36 559 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 |
|
|
-Zsert- |
![]()
Post
#5
|
Goście ![]() |
Do czego można on duplicate key update wykorzystać ?
|
|
|
![]()
Post
#6
|
|
Grupa: Moderatorzy Postów: 36 559 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:
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- |
![]()
Post
#7
|
Goście ![]() |
Też przydatne jest. Dzięki za wszystko (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 16.10.2025 - 21:34 |