INSERT ... ON DUPLICATE KEY UPDATE
Linuchs
- mysql
0 dedlfix0 danke
Linuchs0 Auge
Moin,
für meinen Mittagstisch kann man ein Wochen-Formular ausfüllen. Sieben Tage mal zwei Mahlzeiten macht 14 Datensätze auf einen Streich.
Unique Key ist der Gastronom, das Datum und eine laufende Nummer pro Datum.
Mit INSERT füge ich die Datensätze ein. Aber es ist kein Fehler, wenn ein vorhandener Datensatz erneut kommt - Dann INSERT ... ON DUPLICATE KEY UPDATE
Nach jedem der 14 möglichen SQL-Kommandos kann man mysql_affected_rows
abfragen und aufaddieren. Aber wie kann ich unterscheiden, ob der Satz neu angelegt oder geändert wurde?
Ich möchte anzeigen: xx Datensätze neu erfasst und yy geändert
Linuchs
Tach!
Nach jedem der 14 möglichen SQL-Kommandos kann man
mysql_affected_rows
abfragen und aufaddieren. Aber wie kann ich unterscheiden, ob der Satz neu angelegt oder geändert wurde?
dedlfix.
Hallo dedlfix,
meine Antwort war verschwunden, also noch einmal.
Auf der Seite habe ich nach "mysql_affected_rows" gesucht, kein Treffer. Komisch, dass das wichtigste Keywort fehlt.
Habe ich mal schnell eingebaut, sieht gut aus. Muss ich aber noch gründlicher testen.
Es gilt auch ein gleichbleibender Satz als verändert, wenn ich das Feld zeit_aen auf time() setze. Tue ich das nicht, wird die Zeit trotz Änderung nicht festgehalten.
Ich unterscheide zwischen zeit_aen = time() bei manueller Änderung und last_modified (timestamp), wenn nur der counter beim Aufruf hochgesetzt wird.
Linuchs
Hallo
Auf der Seite habe ich nach "mysql_affected_rows" gesucht, kein Treffer. Komisch, dass das wichtigste Keywort fehlt.
Du suchst den Namen einer PHP-Funktion in der MySQL-Doku. Warum sollte es den dort geben?
Es gilt auch ein gleichbleibender Satz als verändert, wenn ich das Feld zeit_aen auf time() setze.
Bleibt denn ein Datensatz „gleich“, wenn sich ein Feld (hier „zeit_aen“) verändert?
Tschö, Auge