MySQL - Vergleich Wert1 mit existierenden Werten einer Spalte

Aslan1905

Neuer Benutzer
Beiträge
4
Hallo! =)

Ich habe folgende zwei Tabellen:

1. Tabelle: Mitarbeiter

- ID, Vorname, Nachname, Geburtsdatum, Geschlecht, Mobilnummer.

2. Tabelle: Login

- ID, Benutzername, Passwort, Typ, MitarbeiterID (Fremdschlüssel)

Ich programmiere eine Anwendung in Java für meine Bachelorarbeit und möchte nun Rudundanzen vermeiden, sodass z.B. beim Speichern oder Ändern eines Wertes in der Tabelle geprüft wird, ob dieser Wert bereits vorhanden ist.

Ich bekomme immer wieder einen SQL Syntaxfehler und weiß nicht wo mein Fehler liegt.

SQL Query:

Code:
String sql = "Update mitarbeiter, login SET mitarbeiter.ID='"+value_1+"', mitarbeiter.Vorname='"+value_2+"',mitarbeiter.Nachname='"+value_3+"',mitarbeiter.Geburtsdatum='"+value_4+"',mitarbeiter.Geschlecht='"+value_5+"',\n" +       
                        "mitarbeiter.Email='"+value_6+"',mitarbeiter.Mobilnummer='"+value_7+"',login.Benutzername='"+value_8+"',login.Passwort='"+value_9+"',login.Typ='"+value_10+"' WHERE mitarbeiter.ID ='"+value_1+"' AND mitarbeiter.ID = login.MitarbeiterID AND mitarbeiter.Vorname='"+value_2+" != mitarbeiter.Vorname";
Mir gehts in der SQL Syntax hauptsächlich um die letzte WHERE Bedingung:

AND mitarbeiter.Vorname='"+value_2+" != mitarbeiter.Vorname

Nun will ich vergleichen, ob Vorname Value_2 (Neuer Wert der eingegeben wurde) nicht identisch ist mit den bereits existierenden Werten in der Spalte Vorname!

Kann mir jemand vielleicht sagen, wo ich einen Fehler mache bzw. meine Abfrage richtig umsetzen?

Vielen Dank im Voraus!
 
Werbung:

akretschmer

Datenbank-Guru
Beiträge
9.731
Ich programmiere eine Anwendung in Java für meine Bachelorarbeit und möchte nun Rudundanzen vermeiden, sodass z.B. beim Speichern oder Ändern eines Wertes in der Tabelle geprüft wird, ob dieser Wert bereits vorhanden ist.

Selbe Tabelle?

Falls ja: UNIQUE CONSTRAINT auf die Spalte

Nun will ich vergleichen, ob Vorname Value_2 (Neuer Wert der eingegeben wurde) nicht identisch ist mit den bereits existierenden Werten in der Spalte Vorname!

Also ja, oder?


Das sollte MySQL, glaube ich, sogar können ;-)

Andreas
 
Werbung:

akretschmer

Datenbank-Guru
Beiträge
9.731
Tabelle Mitarbeiter & Login wurden miteinander verknüpft. Wie setze ich UNIQUE CONSTRAINT in meinem Fall?



Ja... aber bekomme wie schon gesagt einen Syntaxfehler ausgespuckt.


Du kannst in der WHERE auch nicht prüfen, was in anderen zeilen der Tabelle steht. Die Lösung heißt TIAS: Try It And See ;-)

Code:
test=# create table aslan (t text unique);
CREATE TABLE
test=*# insert into aslan values ('test1');
INSERT 0 1
test=*# insert into aslan values ('test2');
INSERT 0 1
test=*# insert into aslan values ('test2');
ERROR:  duplicate key value violates unique constraint "aslan_t_key"
DETAIL:  Key (t)=(test2) already exists.
test=*# update aslan set t = 'test9' where t = 'test1';
UPDATE 1
test=*# update aslan set t = 'test9' where t = 'test1';
UPDATE 0
test=*# update aslan set t = 'test9' where t = 'test2';
ERROR:  duplicate key value violates unique constraint "aslan_t_key"
DETAIL:  Key (t)=(test9) already exists.
test=*#

Andreas
 
Oben