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