【问题标题】:Error: load data not allowed in stored procedures错误:存储过程中不允许加载数据
【发布时间】:2017-09-20 08:37:44
【问题描述】:

我正在尝试在 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 有没有其他解决方案可以实现相同的目标?谢谢

【问题讨论】:

  • 是的,使用 cronjob。

标签: mysql stored-procedures mysql-event


【解决方案1】:

您可能想使用 mysqlimportvia cron 或 Windows 的任务计划程序进行调查。

cron 是一个 Unix 守护进程(系统服务) - 随所有主要服务器 Linux/*BSD 发行版一起提供。在 Windows 上,您将获得 Windows Task Scheduler service

(如果您想获得有关如何配置cron 的一些建议,请在下面的 cmets 中告诉我。)

假设您在 *nix 上,我会将您的导入过程包装在一个 shell 脚本中。尽一切努力检查您要导入的数据是否可用(是否可读等)并适当地抛出有意义的错误(例如,通过stderrstdout,以及适当的非零退出代码)。

mysqlimportis available online 上的文档。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-06-27
    • 1970-01-01
    • 1970-01-01
    • 2021-06-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多