Hilfe! Replace Into!
Peter Mairhofer
- datenbank
Hallo!
Ich habe eine "Wettertabelle", mit (z.B.) den Attributen Tag (Primary Key), Temperatur, Wind, Text.
Jetzt werden aber die 3 Attribute (Temp., Wind, Text) unabhängig in die Tabelle eingetragen.
Wenn jetzt schon ein Datensatz für den Tag existiert, soll ein einfaches UPDATE gemacht werden, das NICHTS vorhandenes überschreibt.
Falls noch keiner existiert soll ein einfaches INSERT gemacht werden, das die angegebenen Daten einfüllt und den Rest auf die Default Werte setzt.
Bis jetzt habe ich REPLACE INTO verwendet, aber sofern der Datensatz schon existiert, werden die übrigen Werte überschieben!
Gibt es eine einfachere Lösung, als zuerst mit SELECT zu überprüfen, ob ein Datensatz bereits existiert und wenn ja UPDATE zu verwenden, sonst INSERT?
Vielen Dank!
Peter
Hi,
ich wäre prinzipiell für die Variante mit der Prüfung über Select, alternativ könntest du auch ein UPDATE mit einer WHERE-Klausel einfach ausführen lassen und dir hinterher die Anzahl der betroffenen Zeilen ausgeben lassen. Ist die 0, dann musst du das ganze per Insert eintragen.
MfG
Rouven
Hallo,
ich wäre prinzipiell für die Variante mit der Prüfung über Select, alternativ könntest du auch ein UPDATE mit einer WHERE-Klausel einfach ausführen lassen und dir hinterher die Anzahl der betroffenen Zeilen ausgeben lassen. Ist die 0, dann musst du das ganze per Insert eintragen.
Erstmal danke für deine Hilfe! So a schas, die betroffenen Zeilen scheinen nur dann > 0 zu sein, wenn sich was verändert hat! Also es scheint als würde ich ums SELECT nicht herumkommen...
:-((
hi Peter,
ich bin mir nicht ganz sicher, ob ich verstanden habe, was du meinst. hatte da so meine schwierigkeiten.
Ich habe eine "Wettertabelle", mit (z.B.) den Attributen Tag (Primary Key), Temperatur, Wind, Text.
ich glaube, der haken ist der primary key. ich gehe mal davon aus, dass du mit tag ein datumswert meinst und nicht montag bis sonntag. und hier ist dann die frage, ob nur datum oder auch mit zeitangabe.
Jetzt werden aber die 3 Attribute (Temp., Wind, Text) unabhängig in die Tabelle eingetragen.
was bedeutet hier unabhängig und welchen wert bekommt der primary key tag, das aktuelle datum ?
Wenn jetzt schon ein Datensatz für den Tag existiert, soll ein einfaches UPDATE gemacht werden, das NICHTS vorhandenes überschreibt.
ein update ist immer eine veränderung eines bestehenden datensatzes. wenn du nicht willst, dass ein vorhandener datensatz geändert wird, musst du insert verwenden.
um das zu erreichen, gibt es mehrere möglichkeiten. eine wäre, du änderst deinen primary key und nimmst die zeit in das datum mit rein. dann könntest du vom gleichen tag mehrere einträge machen.
Ilja