A | A | A

MySQL - Updates mit ON DUPLICATE

(am)

23.04.2009 15:32

Daten aktualisieren

Seit der Version 4.1 kennt MySQL die Erweiterung ON DUPLICATE KEY für den Befehl INSERT. Die führt statt des Einfügens eine UPDATE-Operationen durch, falls bereits ein Satz mit dem identischen Primärschlüssel existiert. Ein Beispiel für die Anwendung: Sie möchten sich für Ihre Website eine Tabelle anlegen, die die Zugriffszahlen auf Basis von IP-Adressen speichert. Die Struktur der Tabelle wird in etwa so aussehen:

CREATE TABLE zugriffe (
ip VARCHAR(15) NOT NULL PRIMARY KEY,
zaehler INT UNSIGNED NOT NULL, lzugriff DATETIME
);

Um einen neuen Zugriff zu vermerken, würde man mit den normalen SQL-Befehlen zuerst eine Abfrage starten, die das Vorhandensein der IP-Adresse prüft und dann je nach ihrem Ergebnis die Daten per UPDATE aktualisieren oder mittels INSERT neu eintragen. Mit dem praktischen Befehlszusatz dagegen genügt ein MySQL-Befehl:

INSERT INTO zugriffe VALUES ('192.168.0.1', 1, now( ))
ON DUPLICATE KEY UPDATE zaehler = zaehler +1,lzugriff = now( );

Für den Fall, dass die IP-Adresse 192.168.0.1 bereits in der Tabelle eingetragen ist, wird also der Zähler um eins erhöht und das Feld, das den letzten Zugriff speichert, aktualisiert.
(Martin Goldmann/Natascha Maslo/am)


Anzeige
Mehr zum Thema


  • Mister Wong
  • Folkd
  • oneview
  • del.icio.us
  • LinkaARENA
  • google.com
  • blinklist
  • Furl
  • YahooMyWeb
  • YiggIt

Anzeige

Stellenangebote

Website durchsuchen

Anzeige

Twitter