我想它对MySQL有效,但是我找不到关于SQlite的任何信息。
基本上,我有一个名为“ CUSTOMER”的表。 所以我创建了一个这样的属性:
.. 图像BLOB ..之后,我的插入语句如下:
插入客户(1,LOAD_FILE(D:/Project/Images/X.jpg));
但是,LOAD_FILE标记不起作用,我不知道我们如何插入图像或可以这样做。
答案 0 :(得分:1)
您可以将图像存储为 BLOB ,但是您必须使用类似以下内容的图像将其作为一系列字节插入:-
INSERT INTO CUSTOMER (image_column, other_column) VALUES(x'0001020304........','data for the first other column');
因此,您需要将文件转换为十六进制字符串以保存它。
但是,实际上不建议存储图像,而是存储图像的路径,然后在要显示/使用图像时检索文件。
说,对于较小的图像(例如100K),SQLite实际上可以更高效35% Faster Than The Filesystem。
答案 1 :(得分:0)
如果您使用sqlite3 Shell,则相关功能为readfile()。
如果要通过自己的程序执行此操作,则必须将文件读取为字节数组,并将其作为blob绑定到插入中所需的列。具体的详细信息取决于语言和sqlite绑定,但您不必将其转换为Blob文字字符串并将其直接嵌入到语句中。
答案 2 :(得分:0)
您必须使用cmd命令行(Windows)插入附件。 sqllitespy(1.9.13版)不支持从程序命令行执行命令。
您应该先使用CMD访问数据库,然后再访问;
更新(表)集(列)= readfile(“文件存储目录”'|| num ||´.jpg);