SQL SELECT, INSERT vs INSERT

Hi,

mich beschäftigt seit ein paar Tagen folgende Frage:
Ich habe einen primary Key aus 2 verschiedenen Feldern (Daten, Hashwert) in meiner Tabelle.
Nun stellt sich mir die Frage, ob ich bei INSERT zuerst per SELECT abrufen soll (überprüfen ob ein Eintrag mit diesen Daten schon existiert (und falls nicht, einfach in die Datenbank einfügen))
Oder direkt den INSERT ausführen (wenn der Key schon existiert wird ein Fehler zurückgeworfen, ansonsten werden die Daten in die DB eingefügt)

Welcher ist eurer Meinung nach der bessere/saubere/performantere Weg oder gibts vielleicht ein INSERT mit Precondition?

MfG
Inliferty
 
Aus den MySQL Handbuch würde ich mir die Stelle mal genauer anschauen ob sich da was basteln lässt für den vorhaben

Wenn Sie ON DUPLICATE KEY UPDATE angeben und ein Datensatz eingefügt wird, der einen doppelten Wert in einem eindeutigen Index oder einem Primärschlüssel erzeugen würde, dann wird für den alten Datensatz UPDATE ausgeführt. Siehe auch Abschnitt 13.2.4.3, „INSERT ... ON DUPLICATE KEY UPDATE“.

Link:
MySQL :: MySQL 5.1 Referenzhandbuch :: 13.2.4 INSERT
 
Zurück
Oben