Как создать файл .txt и вставить в него данные в SQL? - PullRequest
0 голосов
/ 01 апреля 2020

Я изучаю триггеры и события, и у меня возникла следующая проблема:

Я создал триггер, который вставляет данные в таблицу с именем updated_movie, когда в таблицу movie вносится обновление.

Кроме того, я хочу создать событие, которое выполняется каждый день в 11:30, которое создает текстовый файл с некоторыми данными из таблицы updated_movie. Я сделал это до сих пор:

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 ;

Это событие, которое я хочу проводить каждый день. Как создать текстовый файл в пути, объявленном в событии, с тем же именем файла, что и объявленная переменная nameFile?

Кроме того, процедура copyIntoFile до сих пор выглядит следующим образом:

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 ;

Как я могу сделать так, чтобы я мог вставить некоторые данные в текстовое поле?

Если вам интересно, в таблице updated_movie просто есть одно поле varchar(255).

1 Ответ

0 голосов
/ 01 апреля 2020
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;

Изменение условий, выходных выражений, добавление экспортных спецификаций, если это необходимо.

Проверка настроек secure_file_priv и связанных с ними, а также правильное назначение целевого устройства. Требуется привилегия FILE.

PS. BEGIN-END, DELIMITER и др. c. - избыточны.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...