2013-06-14 3 views
1

Я пытаюсь создать автоматическую резервную копию с использованием планировщика событий в MySQL.Автоматизация резервных копий с использованием планировщика событий

Вот мой сценарий:

CREATE DEFINER=`root`@`localhost` EVENT `Backup` 
ON SCHEDULE EVERY 1 WEEK 
STARTS '2013-06-14 18:19:02' ON COMPLETION NOT PRESERVE ENABLE 
DO 
SET @sql_text = CONCAT ("SELECT * FROM BonInterne INTO OUTFILE '/home/aimad/GestionStock/" , DATE_FORMAT(NOW(), '%Y%m%d') , "BonInterne.csv'"); 
PREPARE s1 FROM @sql_text; 
EXECUTE s1; 
DROP PREPARE s1; 

Когда я исполняю его я получаю сообщение об ошибке в строке PREPARE s1 FROM @sql_text:

У Вас есть ошибка в вашем SQL синтаксиса; в руководстве, соответствует версии сервера MySQL для правильного синтаксиса, чтобы использовать вблизи «NULL» в строке 1

что проблема с моим сценарием?

ответ

0

Несколько заявлений должны быть между BEGIN и END. Также вам нужно изменить разделитель, иначе MySQL считает, что оператор создания события завершен с первым ;. И наконец, это DEALLOCATE PREPARE ..., а не DROP PREPARE....

DELIMITER $$ 
CREATE DEFINER=`root`@`localhost` EVENT `Backup` 
ON SCHEDULE EVERY 1 WEEK 
STARTS '2013-06-14 18:19:02' ON COMPLETION NOT PRESERVE ENABLE 
DO 
BEGIN 
SET @sql_text = CONCAT("SELECT * FROM BonInterne INTO OUTFILE '/home/aimad/GestionStock/" , DATE_FORMAT(NOW(), '%Y%m%d') , "BonInterne.csv'"); 
PREPARE s1 FROM @sql_text; 
EXECUTE s1; 
DEALLOCATE PREPARE s1; 
END $$ 
DELIMITER ; 
Смежные вопросы