首页 > 解决方案 > 每 5 分钟自动执行 SQL 语句

问题描述

我正在尝试每 5 分钟在 MariaDB/SQL 中自动执行一次 Load Data Infile 命令(它们相同吗?)。这是我试图自动化的代码块。

LOAD DATA LOCAL INFILE 'path to text file'
INTO TABLE Student
FIELDS TERMINATED BY ',';

我已经尝试了一些更简单的解决方案,但无济于事。我正在考虑创建一个脚本并使用内置的系统调度程序,但我在 linux 上并且不熟悉并且非常喜欢在 MYSQL 中执行此操作的方法。感谢您的帮助!

标签: sqlmariadbscheduled-tasks

解决方案


我相信 MariaDB 应该包含 MySQL 的事件调度器——你可以在这里找到更多关于使用它的细节:http ://www.mysqltutorial.org/mysql-triggers/working-mysql-scheduled-event/

我建议将该代码放在存储过程中并使用它来触发该过程:

CREATE PROCEDURE stored_proc_name ()
BEGIN
    LOAD DATA LOCAL INFILE 'path to text file'
    INTO TABLE Student
    FIELDS TERMINATED BY ',';
END

然后创建事件:

CREATE EVENT event_name
ON SCHEDULE EVERY 5 MINUTE
DO
    EXEC stored_proc_name

推荐阅读