【问题标题】:sqlite3 .import failing to create tablesqlite3 .import 无法创建表
【发布时间】:2019-07-10 18:11:44
【问题描述】:

我看过其他帖子并尝试了答案,但它仍然不会为我创建表格。

我只是想将一个 .tab 文件即时导入到一个新的 sqlite3 表中。

我已尝试使用带有 .separator '\t' 和 .mode 选项卡的 .mode csv

我有以下命令和错误。

sqlite> .mode 选项卡

sqlite> .import /storage/mgymrek/gtex-estrs/revision/mastertables/Adipose-Subcutaneous_master.csv Temp1

错误:没有这样的表:Temp1

我也试过

sqlite3 -separator '\t' estr.db ".import Adipose-Subcutaneous_master.csv Temp1"

错误:没有这样的表:Temp1

请帮忙!

【问题讨论】:

  • Temp1 表是否存在?当您运行.tables 命令时,它会显示什么?
  • 感谢您的提问。不,它没有。错误:没有这样的表:Temp1 sqlite> .tables sqlite>

标签: sqlite


【解决方案1】:

根据this answer,如果您有旧版本的 SQLite,就会发生这种情况。我不确定在哪个版本中实现了表的自动创建,但从那篇文章来看,如果你有 SQLite 3.8.9 或更高版本,它应该自动创建表,可能之前的几个版本也会这样做。如果您有 3.7.17 或更早版本,它不会创建表,这是我拥有的版本并且它不起作用(我到达这里调查原因)。我不知道中间的版本,但如果你在那里并且它不适合你,我建议你升级。

【讨论】:

    【解决方案2】:

    To import a CSV file in SQLit3, set the mode to csv.如果是tab-seperate-file,可以尝试导入文件,如下图:How to import a tsv file with SQLite3

    sqlite> .mode csv

    sqlite> .import /storage/mgymrek/gtex-estrs/revision/mastertables/Adipose-Subcutaneous_master.csv Temp1

    【讨论】:

    • 感谢您的回答。那是我开始 .mode csv 和 .separator '\t' 的地方。没有运气
    • 如果您想将文件保留为 TSV(制表符分隔值)文件,那么您似乎需要在导入之前创建表。或者,您可以将文件另存为 CSV(用逗号替换选项卡)。
    猜你喜欢
    • 1970-01-01
    • 2021-01-05
    • 2016-12-05
    • 1970-01-01
    • 2013-08-03
    • 1970-01-01
    • 2014-03-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多