Duży INSERT i zduplikowane klucze

Mam przykładowo tablę, która pełni rolę licznika odwiedzin dla danego rekordu. Aby troszkę to utrudnić to ta tabela dodatkowo przetrzymuje informacje jakiego typu jest ten licznik. Oczywiście został ustawiony unikalny klucz typu id-typ. Taki licznik można inkrementować jednym zapytaniem:

INSERT INTO licznik SET id = 1, typ = 'strona_glowna', licznik = 1 ON DUPLICATE KEY UPDATE licznik = licznik + 1;

Zapytanie jest raczej proste (jeśli nie wiesz co oznacza “ON DUPLICATE KEY” odsyłam do manuala MySQL). Całość trochę się komplikuje kiedy jednym SQLem chcę wrzucić kilkanaście rekordów. W tej sytuacji nasze zapytanie zmienia formę na coś takiego:

INSERT INTO
licznik (id, typ, licznik)
VALUES
(1, 'strona_glowna', 1), (1, 'produkt', 1), (2, 'strona_glowna', 1), (...)
ON DUPLICATE KEY UPDATE licznik = licznik + VALUES(licznik)

Wpis ku pamięci.

Ten wpis umieszczono w kategorii MySQL. Możesz dodać go do zakładek permalink. Dodaj komentarz lub dodaj odpowiedź (trackback): Trackback URL.

Skomentuj

Twój adres email nie zostanie opublikowany i nie będzie rozpowszechniany. Wymagane pola są oznaczone *

*
*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>