Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> ON DUPLICATE KEY UPDATE, Zasada działania
morthan
post
Post #1





Grupa: Zarejestrowani
Postów: 50
Pomógł: 4
Dołączył: 15.06.2010

Ostrzeżenie: (0%)
-----


Wygrzebuję temat, ponieważ nie do końca rozumiem zachowanie tej instrukcji. U mnie po wykonaniu zapytania:

  1. INSERT INTO albums (artist, title)
  2. VALUES('Sepultura', 'Chaos A.D.')
  3. ON DUPLICATE KEY UPDATE title='Chaos A.D.';


każdorazowo dostaje nowy rekord w bazie, który jest dokładnym duplikatem poprzedniego.
Z tego co rozumiem zapytanie to powinno pierw dodać rekord, jeśli ten nie istnieje, a jak istnieje to wykonać UPDATE.
Więc dlaczego przy każdym wykonaniu dodaje nowy rekord?


Serwer to najnowsza wersja WAMPa. Polecenie wpisywane w PhpMyAdmin.
Go to the top of the page
+Quote Post
wookieb
post
Post #2





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




Jak sama nazwa wskazuje UPDATE wykonuje się przy opcji DUPLIKACJI KLUCZA. DUPLIKACJI KLUCZA tzn naruszenie warunku unikalności pola.
Zapewne unikalnym polem w twojej bazie jest ID. Przy twoim insert nie wymuszasz ustawienia konkretnej wartości pola ID tak też unikalność nie jest naruszona, ponieważ twoje pole ID zapewne ma właściwość 'auto_increment'.
Unikalność pola można wymusić dodając na nim klucz UNIQUE
Go to the top of the page
+Quote Post
morthan
post
Post #3





Grupa: Zarejestrowani
Postów: 50
Pomógł: 4
Dołączył: 15.06.2010

Ostrzeżenie: (0%)
-----


Dzięki.
Sprawdziłem, po dodaniu id jako unikalne pole działa bez problemu.
Zamykam temat.

Pozdrawiam
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 18.09.2025 - 01:19