Справочная информация. Я работаю с phpMyAdmin (MySQL Workbench) в базе данных mysql. Я пишу PHP-код для импорта данных в БД и выполняю его с помощью планировщика задач Windows. <= это работает отлично!
Теперь я хочу экспортировать некоторые данные в файл в папке Windows. Сначала я пишу код SQL в phpMyAdmin, чтобы увидеть некоторые debug-infos. <= здесь возникает проблема.
Моя тема: я хочу экспортировать несколько столбцов моей БД. Моя цель - поместить переменную CURRENT_TIMESTAMP
в имя файла. Для этого я использую оператор Concat
. Мой код (размещен ниже) получает результат следующей ошибки:
Невозможно создать/записать в файл 'C:\Temp\Export\2018-08-08 09: 21: 27.txt' (Errcode: 13 "Permission denied")
Забавно, если я заменил переменную CURRENT_TIMESTAMP
например, "Hello World", нет ошибки, и мой файл будет создан в папке.
Вот мой код:
*set @sql = concat("SELECT 'LS_ID_Nr',
'Stk_pro_Krt_DL' * 'Krt_DL' + 'RB_Stk_pro_Krt_DL' * 'RB_Krt_DL',
'Umstellzeit',
'Produktionszeit',
'Teilmeldung',
'Fertigmeldung' INTO OUTFILE 'C:/Temp/Export/",CURRENT_TIMESTAMP,".txt' fields terminated by ';' lines terminated by '\r\n' From praemie where Proof_P = 0");
prepare s1 from @sql;
execute s1;
DROP PREPARE s1;
UPDATE praemie SET Proof_P = 1 WHERE Proof_P = 0;*
У кого-нибудь есть идея, почему существует Permission Error
с использованием переменной? Заранее спасибо!
Ooooohh....
Я получаю это сейчас! Проблема в том, что окна не обрабатывают ":" в именах файлов. Поэтому мне нужно отредактировать код с помощью инструкции Date_Format следующим образом:
set @sql =
concat("SELECT 'LS_ID_Nr', 'Stk_pro_Krt_DL' * 'Krt_DL' + 'RB_Stk_pro_Krt_DL' * 'RB_Krt_DL',
'Umstellzeit', 'Produktionszeit', 'Teilmeldung', 'Fertigmeldung'
INTO OUTFILE 'C:/Temp/Export/Test - ", DATE_FORMAT(NOW(), '%Y%m%d%H%i%s')," - Test.txt'
fields terminated by ';'
lines terminated by '\r\n'
From praemie where Proof_P = 0")