Nahemoth Geschrieben 16. Mai 2010 Geschrieben 16. Mai 2010 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 !
robotto7831a Geschrieben 16. Mai 2010 Geschrieben 16. Mai 2010 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
Nahemoth Geschrieben 16. Mai 2010 Autor Geschrieben 16. Mai 2010 (bearbeitet) 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 2010 von Nahemoth
flashpixx Geschrieben 16. Mai 2010 Geschrieben 16. Mai 2010 Du kannst in der Anwendung den Fehler abfangen und entsprechend verarbeiten. MySQL bietet hier an, dass Du die Fehlermeldung geliefert bekommst
Nahemoth Geschrieben 16. Mai 2010 Autor Geschrieben 16. Mai 2010 hm, und das mit der illegal operation, wo kommt das denn her ? danke !
robotto7831a Geschrieben 16. Mai 2010 Geschrieben 16. Mai 2010 Wahrscheinlich von deinem Trigger. Aber meine Glaskugel ist gerade in Monacco um das Formel 1 Ergebnis zu oraceln. Frank
Nahemoth Geschrieben 16. Mai 2010 Autor Geschrieben 16. Mai 2010 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//
robotto7831a Geschrieben 16. Mai 2010 Geschrieben 16. Mai 2010 Und was hat der Trigger jetzt mit der Überprüfung auf doppelte Benutzernamen zu tun? Frank
Nahemoth Geschrieben 16. Mai 2010 Autor Geschrieben 16. Mai 2010 nichts, aber das ist der einzige, und der liefert den fehler
dr.dimitri Geschrieben 16. Mai 2010 Geschrieben 16. Mai 2010 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
Nahemoth Geschrieben 16. Mai 2010 Autor Geschrieben 16. Mai 2010 der client ist oo-base, aber wie geht das da in nem formular ? openoffice kennt doch keine md5-funktion.
dr.dimitri Geschrieben 17. Mai 2010 Geschrieben 17. Mai 2010 Ca. 60 Sekunden Google bringen diese Erweiterung zum Vorschein. Dim
Nahemoth Geschrieben 17. Mai 2010 Autor Geschrieben 17. Mai 2010 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.
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden