2017-09-20 1 views
0

Ich versuche, eine Event in mysql zu erstellen, in dem Ereignis Ich möchte LOAD DATA Query alle 30 min ausführen.
Meine Suche:Fehler: Laden von Daten in gespeicherten Prozeduren nicht zulässig

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; 
$$ 

Ich erhalte den Fehler LOAD DATA not allowed in stored procedures Gibt es eine andere Lösung, die gleiche Sache zu erreichen? Danke

+1

Ja, verwenden Sie einen Cronjob. – fancyPants

Antwort

0

Sie möchten möglicherweise mit mysqlimport über cron oder Windows Taskplaner untersuchen.

cron ist ein Unix-Daemon (Systemdienst) - ausgeliefert mit allen gängigen Linux/* BSD-Distributionen. Unter Windows erhalten Sie die Windows Task Scheduler service.

(Wenn Sie einige Vorschläge mögen, wie cron zu konfigurieren, lassen Sie mich unten in den Kommentaren wissen.)

Angenommen, Sie auf * nichts sind, würde ich Ihren Importvorgang in einem Shell-Skript wickelt. Machen Sie alle Anstrengungen, um sicherzustellen, dass die Daten, die Sie importieren möchten, verfügbar sind (lesbar usw.), und sinnvolle Fehler in angemessener Weise auslösen (z. B. über stderr vs stdout und bei Nicht-Null-Beendigungscodes entsprechend).

Dokumentation über die mysqlimportis available online.

Verwandte Themen