Ich muss die Werte aller Felder eines Datensatzes mit einem bestimmten Schlüssel festlegen (der Schlüssel ist tatsächlich zusammengesetzt) und den Datensatz einfügen, wenn noch kein Datensatz mit einem solchen Schlüssel vorhanden ist.
REPLACE
scheint wie gedacht, um die Arbeit zu erledigen, aber gleichzeitig schlägt seine Handbuchseite vor
INSERT ... ON DUPLICATE KEY UPDATE
.
Welchen von ihnen sollte ich besser wählen und warum?
Der einzige "Nebeneffekt", der REPLACE
mir in den Sinn kommt, ist, dass dadurch die Autoinkrementierungswerte erhöht werden (zum Glück verwende ich keine), während dies INSERT ... ON DUPLICATE KEY UPDATE
wahrscheinlich nicht der Fall ist . Was sind die anderen praktischen Unterschiede zu beachten? In welchen besonderen Fällen kann REPLACE
man es vorziehen INSERT ... ON DUPLICATE KEY UPDATE
und umgekehrt?