INSERT INTO auslassen falls der Wert bereits vorhanden ist?
Hallo zusammen
In meiner Datenbank (raspberrypidb) habe ich in der Tabelle 'ip' 2 Spalten. Einmal die 'userid' welche AUTO INCREMENT hat und noch die 'adresse'. Nun kommt immer ein neuer Wert in die Adresse-Spalte mit INSERT INTO... Nun möchte ich aber, dass es nur einen neuen Wert einträgt wen die Adresse anders ist und noch nicht existiert. Wie kann ich das machen?
Danke schon im Voraus :)
2 Antworten
Du könntest einfach vorher abfragen ob es bereits einen Eintrag mit der betreffenden IP gibt und den Eintrag nur machen. wenn das noch nicht der Fall ist.
Oder, imho die elegantere Lösung, die Spalte für die IP einfach "Unique" machen, dann können da von Haus keine doppelten Werte eingetragen werden. (Und dann halt den Eintrag mittels "INSERT IGNORE" durchführen, dann gibts auch keine Fehlermeldung wenn versucht wird einen Datensatz einzutragen dessen IP schon vorhanden ist).
Normalerweise ist so eine Verzweigung im Code schon lange vorher notwendig. Denn wenn mit Daten, die bereits persistent sind, gearbeitet wird so müssen diese in der Datenbank u.U. aktualisiert werden (UPDATE) oder eben ansonsten neue eingefügt werden (INSERT INTO).