Estoy aprendiendo acerca de los desencadenadores y eventos y tengo el problema siguiente:
He creado un disparador que inserta datos en una tabla llamada updated_movie
cuando se realiza una actualización en la tabla movie
.
También, quiero crear un evento que se ejecuta todos los días a las 11:30 horas, que crea un archivo de texto con algunos datos de la tabla updated_movie
. He hecho esto hasta ahora:
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 ;
Este es el caso quiero ser ejecutado todos los días. ¿Cómo puedo crear un archivo de texto en la trayectoria declarado en el evento con el mismo nombre de archivo que la variable declarada nameFile
?
Además, el procedimiento copyIntoFile
es el siguiente hasta el momento:
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 ;
¿Cómo puedo hacer para que pueda insertar algunos datos en el campo de texto?
En caso de que usted se está preguntando, mesa updated_movie
acaba de tener uno varchar(255)
de campo.
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;
Modificar las condiciones de salida, expresiones, añadir especificaciones de exportación si es necesario.
Compruebe secure_file_priv
entorno y los relacionados, y justificar el destino forder en consecuencia. Privilegio archivo necesario.
PD. Begin-end, delimitador, etc. - son exceso.