2 votes

comment obtenir le résultat des instructions mysql non sélectionnées dans OUTFILE ?

J'ai créé un événement dans mysql pour réparer, optimiser et supprimer les anciennes données de certaines tables sur une base mensuelle.

delimiter $$
Create event CheckMyDB
On SCHEDULE AT current\_timestamp + INTERVAL 1 MONTH
DO 
DELETE FROM SESSIONS where MYCONDITION;
REPAIR TABLE DATANODES;
OPTIMIZE TABLE DATANODES;
$$

Maintenant, comment puis-je savoir quel est le résultat de mon événement ? en d'autres termes, puis-je sauvegarder le résultat de la suppression, de la réparation et de l'optimisation dans une table (quelque chose comme INTO OUTFILE) ou l'insérer dans une table personnalisée ou l'envoyer par email (je ne pense pas que l'envoi d'email à partir de mysql soit possible !)

Merci pour votre aide

2voto

Simon Points 1366

Vous ne pouvez pas obtenir la sortie si elle est exécutée en tant qu'événement (pour autant que je sache) sans regarder dans vos journaux. Cependant, si vous l'exécutez comme un script, en utilisant une commande comme :

# mysql -u <user> -p<password> -vvv database < script.sql > script.log 2>&1

Vous pouvez capturer tous les résultats dans un fichier texte. Le site -vvv augmente la verbosité de la sortie de sorte que vous obteniez x rows affected etc.

L'exécution de ce script en tant que tâche cron vous permettra de mettre en place la même programmation que votre événement, mais aussi de faciliter l'envoi par e-mail de votre fichier de résultats.

Pour plus de sécurité, pensez à stocker votre mot de passe dans le my.cnf pour l'utilisateur qui exécutera le script :

[client]
user=<user>
password=<password>

N'oubliez pas de chmod ce fichier afin que seul le propriétaire puisse le lire.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X