Vinzenz Mai: MySQL 5.0.32: md5 mit insert ignore funktioniert nicht

Beitrag lesen

INSERT INTO DB2.Tabelle1 (username,password) SELECT DB1.Tabelle1.KNID, DB1.Tabelle1.Passwort FROM DB1.Tabelle1

hier hast Du ein Feld: DB1.Tabelle1.Passwort

nehme funktioniert das Ganze ohne Fehler. Sobald ich aber die MD5 Funktion wieder einbaue, wird in der Passwortspalte nur immer der erste Wert aus DB1.Tabelle1.Passwort encodiert, wieso? Die Werte aus der Benutzerspalte werden korrekt übernommen.

INSERT INTO DB2.Tabelle1 (username,password) SELECT DB1.Tabelle1.KNID, md5('DB1.Tabelle1.Passwort') FROM DB1.Tabelle1

Hier hast Du eine Zeichenkette: 'DB1.Tabelle1.Passwort'
Das ist *kein* Feld. Es ist immer die gleiche Zeichenkette, deren Wert eben genau die Buchstaben 'DB1.Tabelle1.Passwort' sind.
Spaltennamen gehören *nicht* in einfache Anführungszeichen.

Da das Ganze wohl nicht machbar ist in einem Query, gibt's halt noch ein

Es ist machbar :-)

Svens Frage ist berechtigt. Wieso ein eindeutiger Index auf der Passwortspalte? Das ist keine gute Idee.

Wird ein Passwort abgelehnt, so weiß man, dass jemand anderes genau dieses Passwort hat. Jetzt muss man nur noch den nicht besonders geheimen Benutzernamen dazu finden.

Freundliche Grüße

Vinzenz