从mysql工作台更新blob

nnsrf1az  于 2021-06-23  发布在  Mysql
关注(0)|答案(2)|浏览(557)

我有一个sql语句的问题。我正在尝试更新一个表中的内容,该表是一个带有pdf的blob字段。但它不起作用。

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做这个更新,它工作得很好。但我也想在工作台上做。
提前谢谢!

xvw2m8pv

xvw2m8pv1#

检查是否给出了手册中描述的所有条件。 LOAD_FILE(file_name) 读取文件并以字符串形式返回文件内容。要使用此功能,文件必须位于服务器主机上,必须指定文件的完整路径名,并且必须具有 FILE 特权。文件必须是可读的所有和它的大小小于 max_allowed_packet 字节。如果 secure_file_priv 如果系统变量设置为非空目录名,则要加载的文件必须位于该目录中。
如果文件不存在或由于不满足上述条件之一而无法读取,则函数返回 NULL . load_file() 退货 NULL ,(至少)其中一个条件必须失败。

eit6fx6z

eit6fx6z2#

我可以通过移动图像来完成( 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;

希望这有帮助。

相关问题