Information ausblenden
Willkommen im Forum für alle Datenbanken! Registriere Dich kostenlos und diskutiere über DBs wie Mysql, MariaDB, Oracle, Sql-Server, Postgres, Access uvm

MySQL - Vergleich Wert1 mit existierenden Werten einer Spalte

Dieses Thema im Forum "MySQL und MariaDB" wurde erstellt von Aslan1905, 10 Dezember 2013.

  1. Aslan1905

    Aslan1905 Neuer Benutzer

    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!
     
  2. akretschmer

    akretschmer Datenbank-Guru

    Selbe Tabelle?

    Falls ja: UNIQUE CONSTRAINT auf die Spalte

    Also ja, oder?


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

    Andreas
     
  3. Aslan1905

    Aslan1905 Neuer Benutzer

    Tabelle Mitarbeiter & Login wurden miteinander verknüpft. Wie setze ich UNIQUE CONSTRAINT in meinem Fall?

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

    akretschmer Datenbank-Guru


    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
     
Die Seite wird geladen...

Diese Seite empfehlen

  1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden