Hallo.
Zuerst einmal grundlegende Informationen. Ich habe eine Datenbank die ich mithilfe von phpmyadmin verwalte. Außerdem erstelle ich alle Triggers,Routinen,Events direkt in phpmyadmin.
Dazu habe ich nun folgende Problemstellung: Ich habe einen funktionierenden Trigger, der Daten in eine Tabelle speichert. Dazu habe ich eine Routine und ein Event erstellt. Und hier mein Problem. Das Event und die Routine funktionieren aber nicht und ich kann mir nicht erklären warum. Die Häufigste Meldung die ich erhalte ist folgende: # MySQL lieferte ein leeres Resultat zurück (d.h. null Zeilen). Das Event soll jede Sekunde die Routine aufrufen.
Event:
DROP EVENT `Timerprobe`//
CREATE EVENT `Timerprobe` ON SCHEDULE EVERY 1 SECOND STARTS '2013-02-14 16:12:02' ON COMPLETION NOT PRESERVE ENABLE DO CALL check_timer()
Routine:
DROP PROCEDURE `check_timer`//# MySQL lieferte ein leeres Resultat zurück (d.h. null Zeilen).
CREATE DEFINER=`###########`#`#` PROCEDURE `check_timer`()
BEGIN
DECLARE var_timer_id INT;
SELECT timer_id INTO var_timer_id FROM timer;
IF timer.endtime < now() THEN
UPDATE ##########.timer SET timer.finished = 1 WHERE timer.timer_id = var_timer_id LIMIT 1;
END IF;
END
# MySQL lieferte ein leeres Resultat zurück (d.h. null Zeilen).
Andere Frage: Kann man Zeiten vergleichen so wie ich das mache: IF timer.endtime < now()THEN
Zuerst einmal grundlegende Informationen. Ich habe eine Datenbank die ich mithilfe von phpmyadmin verwalte. Außerdem erstelle ich alle Triggers,Routinen,Events direkt in phpmyadmin.
Dazu habe ich nun folgende Problemstellung: Ich habe einen funktionierenden Trigger, der Daten in eine Tabelle speichert. Dazu habe ich eine Routine und ein Event erstellt. Und hier mein Problem. Das Event und die Routine funktionieren aber nicht und ich kann mir nicht erklären warum. Die Häufigste Meldung die ich erhalte ist folgende: # MySQL lieferte ein leeres Resultat zurück (d.h. null Zeilen). Das Event soll jede Sekunde die Routine aufrufen.
Event:
DROP EVENT `Timerprobe`//
CREATE EVENT `Timerprobe` ON SCHEDULE EVERY 1 SECOND STARTS '2013-02-14 16:12:02' ON COMPLETION NOT PRESERVE ENABLE DO CALL check_timer()
Routine:
DROP PROCEDURE `check_timer`//# MySQL lieferte ein leeres Resultat zurück (d.h. null Zeilen).
CREATE DEFINER=`###########`#`#` PROCEDURE `check_timer`()
BEGIN
DECLARE var_timer_id INT;
SELECT timer_id INTO var_timer_id FROM timer;
IF timer.endtime < now() THEN
UPDATE ##########.timer SET timer.finished = 1 WHERE timer.timer_id = var_timer_id LIMIT 1;
END IF;
END
# MySQL lieferte ein leeres Resultat zurück (d.h. null Zeilen).
Andere Frage: Kann man Zeiten vergleichen so wie ich das mache: IF timer.endtime < now()THEN