MySQL Doppelte Einträge verhindern

Hallo,

Ich arbeite mit Hibernate und ich habe eine Tabelle mit 4 Spalten: ID, Vorname, Nachname, email.

Wenn ich einen neuen Datensatz einfüge aber die email bereits in der Datenbank vorkommt sollen die restlichen Daten einfach aktualisiert werden.

Sprich ich habe folgende Einträge in der Tabelle:

1 ; Martin, Müller, [email protected]

Jetzt versucht mein script folgenden Eintrag in die Datenbank zu schreiben:

insert: Martin, Neuer, [email protected] (ID ist autoincrement)

Da die email, die eingefügt werden soll, bereits in der Datenbank existiert wird dieser Eintrag jetzt aktualisiert und die Tabelle sieht nun so aus:

1 ; Martin, Neuer, [email protected]


Das einzige was mir einfallen würde um das zu realisieren wäre zu schauen ob es einen Eintrag mit so einer email gibt und dann den neuen Eintrag per update an diese Stelle zu schreiben aber das erscheint mir für so eine gängige Aufgabe zu aufwendig.
 
Würde man aber genauso machen (wenn man nicht noch komplizierter mit stored procedures arbeitet).
Zuerst einmal würde ich die E-Mail als UNIQUE markieren. Es kann vermutlich nicht mehrere Nutzer mit derselben E-Mail Adresse geben (außer natürlich die E-Mail Adresse wird als Verteiler genutzt).
Somit kannst du zumindest schonmal die Konsistenz deiner Daten durch die Datenbank sicherstellen: Es wird nicht mehrere Einträge mit derselben E-Mail Adresse geben.
Ob es nun aber ein neuer INSERT oder ein UPDATE werden soll, ist Geschäftslogik und somit in der Anwendung zu realisieren (oder eben per stored procedure).
 
Passende Stellenanzeigen aus deiner Region:

Neue Themen

Oben