我应该如何将UUID放入CSV文件中,以便发出SQLite .import
命令将它们作为128位BLOB加载到表中?
答案 0 :(得分:2)
据我所知,从sqlite3 shell生成blob的唯一方法是使用zeroblob()
,randomblob()
和readfile()
sql函数,CAST
值,或作为基数16 blob文字(X'1234ABCD'
)。
如果您的UUID已在CVS文件中表示为大端128位二进制数字,那么您可能在导入后可以执行类似UPDATE table SET uuid = CAST(uuid AS BLOB);
的操作。如果它们是文本表示形式,例如 123e4567-e89b-12d3-a456-426655440000 ,则可以编写用户定义的函数进行转换,并将其与类似的导入后{{1} }。
答案 1 :(得分:0)
SQLite
无法从CSV导入BLOB。
解决方案是将CSV转换为SQL语句文件并执行:
sqlite3 database.db < database.sql
如果从应用程序中进行管道传输,则100000
行块是每个流程实例的最佳数量。
如果您尝试一次传输大量的千兆字节,sqlite3
将崩溃,并显示一个Out of memory
错误。