MySQL: INSERT or UPDATE in einer Query

15.12.2011 13:38 Uhr

Hallo zusammen,

gibt es in MySQL die Möglichkeit in einer Query zu prüfen, ob ein bestimmter Eintrag bereits existiert (=> UPDATE) oder nicht (=> INSERT)?

Grüße,

Martin

4 Antworten

#1

15.12.2011 13:45 Uhr

Suchst du vielleicht REPLACE?

#2

15.12.2011 13:49 Uhr

Eine andere Möglichkeit wäre das Ganze in der Applikationsschicht zu verstecken. So gibt es z.B. eine Methode save und diese entscheidet dann anhand eines Kriteriums, ob ein Update oder ein Insert gemacht werden soll. In der Regel kann man dies am Vorhandensein der Unique ID festmachen.

#3

15.12.2011 13:52 Uhr

Genau so (Applikationsschicht & prüfen nach Unique ID) würde ich das machen, was allerdings zwei Queries zur Folge hätte:

  1. Prüfen ob Eintrag mit Unique ID existiert (SELECT)

ja -> UPDATE

nein -> INSERT

Aus Performance-Gründen habe ich mich jetzt gefragt, ob man das auch in einer Query abfackeln kann.

#4

15.12.2011 13:56 Uhr

Hey schau dir diesen Link an.

http://dev.mysql.com/doc/refman/5.1/de/insert-on-duplicate.html

Wenn es einen Eintrag gibt wird er geupdatet ansonsten wird ein neuer erstellt.

Ähnliche Fragen



Datenschutzerklärung · Impressum