我正在尝试在mysql中创建Event
,在事件中我想每30分钟执行一次LOAD DATA查询。
我的查询:
DELIMITER $$
CREATE
EVENT auto_mytable
ON SCHEDULE EVERY 30 MINUTE
DO BEGIN
TRUNCATE TABLE mytable;
LOAD DATA local INFILE '/file.csv' INTO TABLE mytable FIELDS TERMINATED BY ',' ENCLOSED BY '"' ESCAPED BY '\\' LINES TERMINATED BY '\n' IGNORE 1 LINES;
END;
$$
我收到错误LOAD DATA not allowed in stored procedures
有没有其他解决方案可以达到同样的目的?感谢
答案 0 :(得分:0)
您可能希望通过mysqlimport
或Windows'使用cron
进行调查。任务计划程序。
cron
是一个Unix守护进程(系统服务) - 随所有主要服务器Linux / * BSD发行版一起提供。在Windows上,您获得Windows Task Scheduler service。
(如果您需要有关如何配置cron
的一些建议,请在下面的评论中告诉我们。)
假设您使用* nix,我将您的导入过程包装在shell脚本中。尽最大努力检查您要导入的数据是否可用(是否可读等)并适当地抛出有意义的错误(例如通过stderr
vs stdout
和非零退出代码)。
mysqlimport
is available online上的文档。