mysql Update, falls vorhanden?
Hans A. Plast
- datenbank
0 Markus**0 Hans A. Plast
Hi,
Mal eine Frage, ob es dafür etwas besseres gibt, als das, was ich mache.
Problemstellung:
Ein ggf. vorhandener Eintrag in einer Tabelle soll upgedatet werden, bzw., falls nicht vorhanden, angelegt werden.
Meine Vorgehensweise:
Gibt es etwas schnelleres oder einfacheres hierfür?
Grüße, Hans
INSERT ... ON DUPLICATE KEY UPDATE...
Gruß, Markus
INSERT ... ON DUPLICATE KEY UPDATE...
Gruß, Markus
Habeich versucht. Hat irgendwie gar nicht funktioniert und ich habe dann doch nochmalö "die alte" Methode genommen.
Dennoch dank, Hans
Mahlzeit Hans A. Plast,
INSERT ... ON DUPLICATE KEY UPDATE...
Habeich versucht.
Womit wir wieder beim Thema wären ... :-)
Was genau hast Du versucht?
Hat irgendwie gar nicht funktioniert
Das hilft "irgendwie" nicht weiter. Versuch Dich doch bitte mal in einen Leser (und potentiellen Helfer) hineinzuversetzen ... was soll so jemand mit einer derartig inhaltslosen Aussage anfangen können? Woher so so jemand wissen, was Dein Problem damit ist? Wenn man Dir helfen soll, musst Du schon genau und detailliert beschreiben, was Du getan hast. Glaskugeln sind nämlich grad aus. Kommen auch nicht wieder rein.
und ich habe dann doch nochmalö "die alte" Methode genommen.
Ich dachte, genau das wolltest Du nicht? Genau genommen ist die "alte" Methode auch nicht besonders ratsam, da Du Dir damit ganz fiese Race Conditions einfangen kannst.
MfG,
EKKi
Hi EKKI,
Was genau hast Du versucht?
Du. Ich habe den Code, den ich versucht habe, schon gar nicht mehr.
Aber ich habe ihn quasi aus dem Handbuch übernommen.Es war nur noch der Zusatz unter dem Update-Statement where Id="..."
Inzwischen (allerdings nach meinem Post hier) habe ich aber festgestellt, dass da noch ein anderes Fehlerchen lauerte, was mir hier auch event. einen Strich durch die Rechnung gemacht hat.
Deshalb exportiere ich solche Dinge eigentlich gerne in eigene Scripte, um genau so etwas auszuschließen.
Ich dachte, genau das wolltest Du nicht? Genau genommen ist die "alte" Methode auch nicht besonders ratsam, da Du Dir damit ganz fiese Race Conditions einfangen kannst.
Aber doch nur dann, wenn mehrere User genau diese Daten bearbeiten und genau zwischen beiden Queries der 2. User eisteigt??
Grüße, Hans
Hi!
Genau genommen ist die "alte" Methode auch nicht besonders ratsam, da Du Dir damit ganz fiese Race Condition einfangen kannst.
Aber doch nur dann, wenn mehrere User genau diese Daten bearbeiten und genau zwischen beiden Queries der 2. User eisteigt??
Ja, aber warum dieses wenn auch sehr geringe Restrisiko einbauen, wenn es mit unwesentlich mehr oder gar weniger Aufwand gar nicht mehr vorhanden ist.
Lo!
Ja, aber warum dieses wenn auch sehr geringe Restrisiko einbauen, wenn es mit unwesentlich mehr oder gar weniger Aufwand gar nicht mehr vorhanden ist.
Sicher. Da hast Du einfach mal recht. Ich kannte diese Methode vorher ja nicht.
Ich werde es also dann doch nochmal ändern ;-)
VG, Hans
Habeich versucht. Hat irgendwie gar nicht funktioniert und ich habe dann doch nochmalö "die alte" Methode genommen.
Dennoch dank, Hans
dann lies die Doku doch nochmal richtig, bzw. den Befehl. "ON DUPLICATE KEY" setzt ja im Grunde schon voraus, dass ein doppelter Schlüssel vorhanden sein muß. Setze also entsprechend in deiner Tabelle einen eindeutigen Schlüssel, damit überhaupt ein "Duplicate Key" abgefangen werden kann.
INSERT ON DUPLICATE KEY funktioniert mit MySQL einwandfrei!
Gruß, Markus