我有一个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进行此更新,它完美无缺。但我也希望从工作台上做到这一点。
提前致谢!
我能够通过将图像(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;
希望这可以帮助。
检查是否给出了manual中描述的所有条件。
LOAD_FILE(file_name)
读取文件并以字符串形式返回文件内容。要使用此功能,文件必须位于服务器主机上,您必须指定文件的完整路径名,并且您必须具有
FILE
权限。该文件必须是所有人都可读的,其大小小于max_allowed_packet
字节。如果secure_file_priv
系统变量设置为非空目录名,则要加载的文件必须位于该目录中。如果文件不存在或由于不满足上述条件之一而无法读取,则该函数返回
NULL
。
load_file()
返回NULL
,(至少)其中一个条件必须失败。