..
I "Powszechnie wiadomo, że prawidłowe zarządzanie zapytanie jest warunkiem realizacji stabilne i wydajne.
W tym artykule zaprezentujemy mało znany, ale bardzo silny składni, mówię ON DUPLICATE KEY klauzuli UPDATE.
Klauzula ta jest używana podczas INSERT i jego celem jest sprawdzenie, przed wprowadzeniem, jest powielanie klucz podstawowy (klucz podstawowy) lub unikalny klucz (KEY), a jeśli tak się stanie, silnik un'UPDATE MySQL zamiast wstawić.
Zaletą tej klauzuli jest jasne: możesz napisać jedno zapytanie zamiast dwóch z korzyści w zakresie wydajności i czyszczenia kodu.
Weźmy przykład. Załóżmy, że chcemy zrobić prosty skrypt, który wykonuje logowanie odwiedzających naszą witrynę. Poniżej struktura tabeli z naszych DB:
Dzięki INSERT składni ... ON DUPLICATE KEY UPDATE ... możemy osiągnąć ten sam efekt za pomocą jednego zapytania:
INSERT INTO ip_visitatori ('123 .123.123.123 ", 1, NOW ())
KLUCZOWYCH DPLICATE
UPDATE numero_visite numero_visite = + 1, ultima_visita = NOW ();
Tak więc, jeśli IP jest włączenie się, w przeciwnym razie uruchomić prosty aktualizacja dotyczy rekordu.
Korzystanie z tej składni pozwala na uzyskanie korzyści w zakresie wydajności równej 30%.
Przy odrobinie wyobraźni i pomysłowości klauzuli pytanie może być bardzo przydatne w różnych okolicznościach.
Na przykład możemy go używać w połączeniu z warunkiem.
Oto przykład: Załóżmy, że masz tabelę hipotetycznej stronie aukcji internetowej następującą strukturę:
Oferty INSERT INTO VALUES (1, 120) KLUCZOWYCH DPLICATE UPDATE migliore_offerta = JEŻELI (VALUES (migliore_offerta) <120, 120, VALUES (migliore_offerta))Poprzez proste zapytanie rozwiązaliśmy za jednym zamachem ... W przeciwnym razie mielibyśmy do korzystania z kilku zapytań z konsekwencją marnotrawstwo zasobów (i większe ryzyko błędów).
| |
MS Access (zaawansowane)
Dowiedz się, jak tworzyć i zarządzać bazami danych szybko i łatwo. Począwszy od 29 €. |
| |
MySQL (Kurs)
Zarządzanie bazą danych open-source. Od 39 €. |
| |
SQL i bazy danych (pole)
Tworzenie i zarządzanie relacyjnymi bazami danych. Od 39 €. |