Veröffentlicht 16. Mai 201015 j Hi, ich erstelle gerade eine MySQL-DB in der Benutzernamen und Passwörter hinterlegt werden. Da jeder Benutzer nur ein PW hat, ist der Benutzername der Primärschlüssel. Dass ausgeschlossen ist, dass ein Benutzername Doppelt einggegeben wird, würde ich gerne einen Trigger erstellen. Der Benutzer sollte im Optimalen fall einen Fehler erhalten, dass der Benutzername bereits vergeben ist. Geht das mit einem Trigger ? Danke !
16. Mai 201015 j Hallo, wenn Du den Benutzernamen als Primary Key deklariest, dann sorgt MySQL automatisch dafür und gibt dir auch eine schöne Fehlermeldung. #1062 - Duplicate entry 'a' for key 1 Frank
16. Mai 201015 j ja, aber der user kann damit in der regel net viel anfangen, gibts da auch ne möglichkeit den fehler anzupassen ? hm, und ausserdem gibt er mitr noch den fehler aus: Illegal operatioin on empty result set. er legt den datensatz an, nur mekkert er. Bearbeitet 16. Mai 201015 j von Nahemoth
16. Mai 201015 j Du kannst in der Anwendung den Fehler abfangen und entsprechend verarbeiten. MySQL bietet hier an, dass Du die Fehlermeldung geliefert bekommst
16. Mai 201015 j Wahrscheinlich von deinem Trigger. Aber meine Glaskugel ist gerade in Monacco um das Formel 1 Ergebnis zu oraceln. Frank
16. Mai 201015 j hm, hier ml der trigger: CREATE DEFINER=`nemesis`@`%` TRIGGER `weblogin`.`md5ize_on_insert` BEFORE INSERT ON `weblogin`.`t_users` FOR EACH ROW BEGIN SET NEW.Passwort = md5( NEW.Passwort ) ; END//CREATE DEFINER=`nemesis`@`%` TRIGGER `weblogin`.`md5ize_on_update` BEFORE UPDATE ON `weblogin`.`t_users` FOR EACH ROW BEGIN IF NEW.Passwort NOT REGEXP '^[0-9A-Za-z]{32}$' THEN SET NEW.Passwort = md5(NEW.Passwort); END IF; END//
16. Mai 201015 j Und was hat der Trigger jetzt mit der Überprüfung auf doppelte Benutzernamen zu tun? Frank
16. Mai 201015 j Eine ganz einfache Lösung: Lösch den Trigger und liefere aus Deinem Programm das Passwort bereits als MD5 Hash so wie es sich gehört. Trigger sind eben nicht dazu da fachliche Logik in der Datenbank abzulegen. Dim
16. Mai 201015 j der client ist oo-base, aber wie geht das da in nem formular ? openoffice kennt doch keine md5-funktion.
17. Mai 201015 j ja, danke für die lehrstunde ... problem bei der sache ist nur, wie verwendet man diese erweiterung ? ich habe keine anleitung gefunden und aus den beispielen lässt sich eicht herauslesen, was in calc zu tun ist, aber nicht wies in base funktioniert.
Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.