我有一个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进行此更新,它完美无缺。但我也希望从工作台上做到这一点。
提前致谢!
答案 0 :(得分:0)
我能够通过将图像(fileName.jpg
)文件首先移到以下文件夹(以我的情况为例)C:\ProgramData\MySQL\MySQL Server 5.7\Uploads
中,然后在命令下方执行,它对我有用, / p>
update employees set file=LOAD_FILE('C:/ProgramData/MySQL/MySQL Server 5.7/Uploads/fileName.jpg') where id = 1;
希望这会有所帮助。
答案 1 :(得分:-1)
检查是否给出了manual中描述的所有条件。
LOAD_FILE(file_name)
读取文件并以字符串形式返回文件内容。要使用此功能,文件必须位于服务器主机上,您必须指定文件的完整路径名,并且您必须具有
FILE
权限。该文件必须全部可读,其大小小于max_allowed_packet
个字节。如果secure_file_priv
系统变量设置为非空目录名,则要加载的文件必须位于该目录中。如果文件不存在或由于不满足上述条件之一而无法读取,则函数返回
NULL
。
load_file()
返回NULL
,(至少)其中一个条件必须失败。