Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Fehlermeldung beim Definieren des Ereignisnamens auf mysqlworkbench 5.5

Laut Dokumentation können Sie kein Ereignis innerhalb des Prozedurkörpers erstellen. Siehe diesen Beitrag Erstellen Sie ein Ereignis innerhalb einer Prozedur - SQL .

Sie müssen zuerst die Prozedur erstellen und sie dann vom Ereignis wie unten aufrufen

DELIMITER $$

CREATE DEFINER=`MailMe`@`%` PROCEDURE `sp_archivev3`()
BEGIN

INSERT INTO 
     send.sgev3_archive(a_bi,
                        b_vc,
                        c_int,
                        d_int,
                        e_vc,

<Rest of the code goes here>

Erstellen Sie dann ein Ereignis, das die Prozedur aufruft

DELIMITER $$  
CREATE EVENT archivescheduler
ON SCHEDULE EVERY 10 SECOND
DO BEGIN
    CALL `sp_archivev3`();
END $$
DELIMITER ;

Ein weiterer Hinweis:Falls Ihre gespeicherte Prozedur nicht vom Ereignis ausgelöst wird; Möglicherweise müssen Sie überprüfen, ob GLOBAL EVENT SCHEDULER ist in DISABLE Zustand. Sie können es mit der folgenden Einstellung aktivieren

SET GLOBAL event_scheduler = ON;