Doppelte Eingaben einer Datenbank abfangen?
Ich habe eine sql Datenbank, dort soll ein Nutzer mit meinem Java Programm Daten eingeben. Wenn jedoch derselbe Username und derselbe Zusätzliche Wert (bsp. 15) eingegeben wird, wird es abgefangen.
Wie kann ich soetwas machen?
Vielen Dank im Voraus! :)
5 Antworten
Frei übersetzt in SQL aber von dir noch anzupassen:
INSERT INTO personal
(username, value, ... )
SELECT expression1, expression2, ...
FROM source_tables
[WHERE conditions];
Conditions könnte so aussehen (Pseudocode ich hasse Java):
Var Username="Gustav Gans"
Var Value="Pattern"
@ = New Con DB Constr
@ Param Username ($Username)
@ Param Value ($Value)
@ Execute @ && X0R
Unique Contraint über beide Spalten.
(Prinzipiell könnte man auch zuvor ein query machen, dann sollte beides aber in eine Transaktion.)
Auf Datenbankseite könntest du dies z.B. mit einem Foreign Key oder Unique Index lösen. Dann bekommst du eien Fehlermeldung, wenn du einen doppelten Wert einfügen willst.
Ich würde dies aber bereits vorher in Java abfangen und dort per DB-Abfrage prüfen, ob es den Eintrag schon gibt. Dann eine Meldung an den User, dass er einen anderen Wert eingeben muss.
Ja, das ist wahrscheinlich die beste Lösung! Danke für deine Hilfe!
Wenn Werte einzigartig sein sollen, dann lass das doch die Datenbank übernehmen über einen entsprechenden Constraint bzw. einen Unique Index.
ALTER TABLE table_name
ADD CONSTRAINT constraint_name UNIQUE (benutzername, value);
on client.post(){
if post.content equals post.last.content(){
skip()
}
}
Nein, es soll ja schauen, ob es in der Datenbank schon vorhanden ist.
(Also 1 Tag danach soll es die Daten immernoch nicht eingeben können)
Ich bin verwirrt, und noch kein Experte.. xD
Und wie mach ich das bei zwei Werten?
("Nur wenn Benutzername und value gleich")