MySQL Doppelte Einträge verhindern

firefall777

Mitglied
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, martin@gmx.de

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

insert: Martin, Neuer, martin@gmx.de (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, martin@gmx.de


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.
 

httpdigest

Top Contributor
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).
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
L SQL-Statement SQL Statement doppelte Einträge finden Datenbankprogrammierung 9
E H2 Doppelte Einträge vermeiden Datenbankprogrammierung 3
K Hibernate mehrfach doppelte Einträge in der Ergebnissmenge Datenbankprogrammierung 5
P SQL Doppelte Zuweisung von Personalnummern Datenbankprogrammierung 6
J Doppelte Daten in Spalte, nur die erste abrufen wie? Datenbankprogrammierung 15
B Doppelte Zeilen einer Doppelten Spalte aus einer Tabelle entfernen. Datenbankprogrammierung 2
C Doppelte Datensätze Datenbankprogrammierung 11
thE_29 ResultSet und doppelte Spalten Datenbankprogrammierung 4
E Qie bekomm ich das hin --> doppelte Spaltenwerte Datenbankprogrammierung 3
Kirby.exe Es werden keine Einträge in der Datenbank gemacht Datenbankprogrammierung 23
S SQL Date Einträge an Tag x Datenbankprogrammierung 7
F Abfrage der letzten Einträge Datenbankprogrammierung 2
S MySQL Abfrage über mehrere Tabellen + Einträge werden überschrieben Datenbankprogrammierung 1
D Keine Einträge in die Datenbank Datenbankprogrammierung 5
L MySQL Einträge löschen schlägt fehl Datenbankprogrammierung 2
H MySQL Einträge löschen Datenbankprogrammierung 5
Z mehrzeilige Einträge Datenbankprogrammierung 4
G maximale Einträge in HSQLDB Datenbankprogrammierung 7
D SQL-Tabelle nur bis 259 Einträge - oder zuwenig Speicher? Datenbankprogrammierung 3
Kotelettklopfer SQLite Verhindern von doppelter Statement Ausführung Datenbankprogrammierung 25
N SQL-Injection verhindern OHNE PreparedStatements Datenbankprogrammierung 11
P SQL Injection verhindern ohne z.B. prepareStatement Datenbankprogrammierung 2
D Mit Trigger Tupel löschen verhindern Datenbankprogrammierung 3
J OutOfMemoryError - Wie verhindern? Datenbankprogrammierung 4
G H2: Erstellen von Datenbanken verhindern Datenbankprogrammierung 2
G Doppeleinträge in Access auf anderem Weg verhindern. Datenbankprogrammierung 4
G SELECT Name= " " verhindern Datenbankprogrammierung 5

Ähnliche Java Themen

Neue Themen


Oben