Вярвам, че мислите това в обратната посока:не можете да създадете събитие в съхранена процедура, но можете създайте съхранена процедура и я извикайте от събитие.
Пример:
delimiter $$
create procedure myProc()
-- Dummy procedure to move the data from mainTable to backupTable,
-- and then clear (truncate) mainTable
begin
insert into backupTable select * from mainTable;
truncate mainTable;
end $$
delimiter ;
-- Now, suposing that you want to execute this procedure every hour:
delimiter $$
create event myEvent
on schedule every 1 hour
do
begin
call myProc();
end $$
delimiter ;
Можете да напишете това като всяка друга заявка в работната среда или директно в клиента на командния ред.
Относно вашата загриженост
След като прочетох коментара ви, смятам, че сте малко объркани какво представлява MySQL Workbench.
MySQL Workbench е само графично приложение, което ви позволява да се свържете с MySQL сървър и да изпълнявате заявки и административни задачи. Но Workbenchне ет ядрото на MySQL... това е само зрител (със стероиди, може би, но все пак зрител).
Сега планировчикът на събития не се намира в Workbench, а в сървърния екземпляр на MySQL, към който се свързвате. Точно както таблиците, изгледите, процедурите и функциите не се съхраняват в интерфейса на Workbench, а в сървъра, събитията също се съхраняват в сървъра.
(Да, вярвам, че е подходящо за SNAFU, че планираните събития не се показват никъде в графичния интерфейс, но... след известно време човек се научава да живее с този вид разочарования и да продължава с живота)
Може би единственото ви притеснение е:"Хей, а какво ще стане, ако искам да знам какви събития са настроени да се изпълняват в планировчика на събития?" Можете да изпълните заявка за „покажи събития“, за да покажете списък със събитията в текущата база данни, и можете да изпълните „покажи събитие за създаване на вашето събитие“, за да покажете create event
синтаксис за това събитие.
Настоявам:Прочетете ръководството и дръжте копие под ръка (изтеглете ръководството за вашата версия на MySQL тук ).