代码之家  ›  专栏  ›  技术社区  ›  hedgar2017

将blob从csv导入sqlite表

  •  0
  • hedgar2017  · 技术社区  · 7 年前

    如何将uuid放入csv文件以使sqlite .import 命令将它们作为128位blob加载到表中?

    2 回复  |  直到 7 年前
        1
  •  2
  •   Shawn    7 年前

    据我所知,从sqlite3 shell生成blob的唯一方法是使用 zeroblob() , randomblob() readfile() SQL函数, CAST 一个值,或者作为一个基16个BLB文字( X'1234ABCD' )

    如果您的UUID已经在CVS文件中被表示为大Endiad 128位二进制数,那么 可以 能够做一些像 UPDATE table SET uuid = CAST(uuid AS BLOB); 进口之后。如果它们是文本表示 123E4567-E89B-12D3-A456-426655440000 您可以编写一个用户定义的函数来进行转换,并将其与类似的post导入一起使用 UPDATE .

        2
  •  0
  •   hedgar2017    7 年前

    SQLite 无法从csv导入blob。

    解决方案是将csv转换为sql语句文件并执行它:

    sqlite3 database.db < database.sql
    

    如果你用管道从一个应用程序, 100000 行块是每个进程实例中最合适的数量。

    如果你想一次传送很多千兆字节, sqlite3 会和一个 Out of memory 错误。