J'apprends sur les déclencheurs et les événements et j'ai la question suivante:
J'ai créé un déclencheur qui insère des données dans une table appelée updated_movie
lorsqu'une mise à jour est faite dans le tableau movie
.
Aussi, je veux créer un événement qui exécute tous les jours à 11h30 qui crée un fichier texte avec des données de la table updated_movie
. Je l' ai fait ce à ce jour:
delimiter !!
drop event if exists createFile !!
create event createFile on schedule at "11:30"
do begin
declare path varchar(255) default "/Users/Shared/BDD/L19/";
declare nameFile varchar(255) default curdate();
declare done int default 0;
declare t varchar(255);
-- creation of the text file?
declare c cursor for select title from updated_movie;
declare continue handler for not found set done = 1;
open c;
l:loop
fetch c into t;
if done = 1 then
leave l;
end if;
call copyIntoFile(t, nameFile);
end loop l;
end!!
delimiter ;
C'est l'événement que je veux être exécuté tous les jours. Comment puis - je créer un fichier texte dans le chemin déclaré dans l'événement avec le même nom de fichier que la variable déclarée nameFile
?
, Procédure aussi copyIntoFile
ressemble à ceci jusqu'à présent:
delimiter !!
drop procedure if exists copyIntoFile !!
create procedure copyIntoFile(in str varchar(255), in fileName varchar(255)
begin
-- Copy into the text file?
end !!
delimiter ;
Comment puis-je faire pour que je puisse insérer des données dans le champ de texte?
Dans le cas où vous vous demandez, table updated_movie
juste avoir un varchar(255)
champ.
CREATE EVENT createFile
ON SCHEDULE
EVERY 1 DAY
STARTS CURRENT_DATE + INTERVAL '11:30' HOUR_MINUTE
ENABLE
DO
SELECT *
INTO OUTFILE 'drive:\\folder\\filename.ext'
FROM updated_movie
WHERE created_at >= NOW() - INTERVAL 1 DAY;
Modifier les conditions, les expressions de sortie, ajouter des spécifications d'exportation si nécessaire.
Vérifiez secure_file_priv
réglage et les connexes, et justifier la destination Forder en conséquence. Privilège FILE nécessaire.
PS. BEGIN-END, DELIMITER, etc. - sont en excès.