我有一个SQL语句的问题。我正在尝试更新表中的内容,这是一个带有pdf的Blob字段。但它不起作用。
UPDATE employees
SET resume = LOAD_FILE('C:\Users\gaby\Desktop\sample_resume.pdf')
WHERE id = 1;如果我使用上面的命令,结果是null。如果我使用下面的命令,结果不是null,有一个pdf,但它是空的。
UPDATE employees
SET resume = 'C:\Users\gaby\Desktop\sample_resume.pdf'
WHERE id = 1;我可以用JDBC做这个更新,它工作得很好。但我也想在工作台上做这件事。
提前感谢!
发布于 2019-02-21 14:32:00
我可以通过先将图像(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; 希望这能有所帮助。
发布于 2018-05-28 20:48:34
检查是否给出了manual中描述的所有条件。
LOAD_FILE(file_name)
读取文件并以字符串形式返回文件内容。要使用此功能,文件必须位于服务器主机上,必须指定文件的完整路径名,并且必须具有FILE权限。该文件必须可供所有人读取,并且其大小必须小于max_allowed_packet字节。如果将secure_file_priv系统变量设置为非空目录名称,则要加载的文件必须位于该目录中。
如果文件不存在或由于不满足上述条件之一而无法读取,该函数将返回NULL。
load_file()返回NULL,(至少)其中一个条件必须失败。
https://stackoverflow.com/questions/50564758
复制相似问题