Обновление BLOB из MySQL Workbench - PullRequest
0 голосов
/ 28 мая 2018

У меня проблема с одним оператором SQL.Я пытаюсь обновить что-то в таблице, которая является полем Blob с PDF.И это не работает.

UPDATE employees 
SET resume = LOAD_FILE('C:\Users\gaby\Desktop\sample_resume.pdf') 
WHERE id = 1;

Если я использую приведенную выше команду, результат будет нулевым.Если я использую приведенную ниже команду, результат не является нулевым, есть PDF, но он пуст.

UPDATE employees 
SET resume = 'C:\Users\gaby\Desktop\sample_resume.pdf'
WHERE id = 1;

Я могу сделать это обновление с помощью JDBC, оно отлично работает.Но я хочу сделать это и из рабочего места.

Заранее спасибо!

Ответы [ 2 ]

0 голосов
/ 21 февраля 2019

Мне удалось это сделать, переместив файл изображения (fileName.jpg) сначала в папку ниже (в моем случае) C:\ProgramData\MySQL\MySQL Server 5.7\Uploads, а затем я выполнил приведенную ниже команду, и она работает для меня,

update employees set file=LOAD_FILE('C:/ProgramData/MySQL/MySQL Server 5.7/Uploads/fileName.jpg') where id = 1; 

Надеюсь, это поможет.

0 голосов
/ 28 мая 2018

Убедитесь, что заданы все условия, описанные в руководстве .

LOAD_FILE(file_name)

Считывает файл и возвращает содержимое файла в виде строки.Чтобы использовать эту функцию, файл должен быть расположен на хосте сервера, необходимо указать полный путь к файлу и иметь привилегию FILE.Файл должен быть доступен для чтения всем, и его размер должен быть меньше max_allowed_packet байтов.Если для системной переменной secure_file_priv задано непустое имя каталога, загружаемый файл должен находиться в этом каталоге.

Если файл не существует или его невозможно прочитать, поскольку одно из предыдущих условийне выполнено, функция возвращает NULL.

load_file() возвращает NULL, (по крайней мере) одно из условий должно быть не выполнено.

...