我有这个SQLite表:
create table mytable (
aid INTEGER NOT NULL PRIMARY KEY,
bid INTEGER NOT NULL,
image BLOB
);
我想在此表的image
字段中插入二进制文件。是否可以从sqlite3
命令行界面执行此操作?如果是这样,怎么样?我正在使用Ubuntu。
谢谢!
答案 0 :(得分:12)
sqlite3 command line interface添加了以下两个“应用程序定义”函数:
readfile
INSERT INTO table(blob) VALUES (readfile('myimage.jpg'))
writefile
答案 1 :(得分:4)
您可以使用以下语法:
echo "insert into mytable values(1,1, \"`cat image`\")" | sqlite3 yourDb
我不确定“大约blob的值。请注意cat命令的反引号,意味着cat命令将在回显之前执行。
[编辑]
Blob存储为带有“X”前缀的六位数。您可以使用“hexdump”unix命令生成hexa字符串,但最好编写一个读取图像并执行插入的命令行工具。 有关此帖子的更多详情:http://comments.gmane.org/gmane.comp.db.sqlite.general/64149