Heiko: Fehlermeldung bei Eintrag in die Datenbank

Beitrag lesen

Hi Carl,

wirklich keine gute Idee, was Du da machst. Du trägst einmal einen Datensatz in eine Tabelle ein, damit gibt es ihm. Nochmal eintragen geht nicht (sie die anderen Antworten), weil Du dann eine Primärschlüsselverletzung hast (Primärschlüssel=Die Spalten einer Tabelle, die eine Zeile eindeutig identifizieren).

Lösungen:

a) Du hebst den Primärschlüssel auf. KEINE GUTE IDEE, jede Tabelle sollte einen haben.

b) Du führst eine ID ein (auto_increment) und machst die alleinig zum Primärschlüssel. KANN eine Lösung sein, aber nicht, wenn Du einen Eintrag machst und dann merkst es war falsch und Du willst den Eintrag korrigieren (Zurück-Button, korrigieren, nochmal abschicken), denn hast du 2 Einträge: 1. den falschen und 2. den richtigen. Dann ist c) bessser:

c) Nimm die Daten und schaue, ob es schon einen Eintrag mit diesem Primärschlüssel gibt. Wenn nein, mache ein INSERT, wenn ja ein UPDATE. (Genaugenommen gehört vor ein Update noch ein SELECT FOR UPDATE, um die Daten exclusiv für den Schreibzugriff zu bekommen, Stichwort "konkurrierender Datenzugriff".)

Gruß
Heiko