。导入CSV到sqlite3数据库

时间:2017-05-05 17:30:56

标签: csv sqlite

我绝对是在撞墙,因为没有其他答案对我有用。

我有一个CSV文件......这里有10行作为示例

Row 1:    https://h10145.www1.hpe.com/downloads/SoftwareReleases.aspx?ProductNumber=J4813A                  
Row 2:    F.05.80   6-Jul-15    3-Nov-15    Release notes   1.67 MB »
Row 3:    https://h10145.www1.hpe.com/downloads/SoftwareReleases.aspx?ProductNumber=J4903A                  
Row 4:     I.10.107 24-Aug-15   2-Nov-15    Release notes   3.49 MB »
Row 5:     https://h10145.www1.hpe.com/downloads/SoftwareReleases.aspx?ProductNumber=J9019B                 
Row 6:     Q.11.76  6-Feb-17    21-Feb-17   Release notes   2.80 MB »
Row 7:     https://h10145.www1.hpe.com/downloads/SoftwareReleases.aspx?ProductNumber=J9022A                 
Row 8:     N.11.76  6-Feb-17    21-Feb-17   Release notes   3.11 MB »
Row 9:     https://h10145.www1.hpe.com/downloads/SoftwareReleases.aspx?ProductNumber=J9147A                 
Row 10:     W.15.14.0015    23-Mar-17   30-Mar-17   Release notes   9.16 MB »

http://imgur.com/a/V4leS这是CSV文件的屏幕截图

我还有一个为此明确目的而创建的数据库文件。它的名字是Test.db.在该数据库中,有一个名为output

的表

当我运行.schema Output时,我得到了

`CREATETABLE(输出(" https://h10145.www1.hpe.com/downloads/SoftwareReleases.aspx?ProductNumber=J4813A" TEXT);

我正在尝试使用SQLite命令行来解决此问题

`C:\Windows\System32>sqlite3 c:\source\test.db
sqlite> .separator ,
sqlite> .mode csv
sqlite> .import c:/source/output_file.csv Output`

我收到此错误消息     c:/source/output_file.csv:59: expected 1 columns but found 6 - extras ignored 每一行都会发生此错误,从1到59

我在这里缺少什么?

2 个答案:

答案 0 :(得分:1)

您的表的架构看起来很糟糕,可能是由于滥用格式,但它看起来只有一列。 图片中的输入文件显示您有很多, (顺便提一句,你在问题中输入的引用并没有表明。)
您使用,作为分隔符来填充一列的表格 即sqlite在导入中看到许多列,只有一列要填充。

制作一个有六列的表格 从安全的一个开始,即六列varchar(300)。

或者,只使用输入文件中未出现的分隔符导入一列。这适用于只有一列的表。

答案 1 :(得分:0)

在这里回答我自己的问题:

我用来导入的CSV格式不正确。我用1列和一个特定的标题字段重新创建它,它没有问题

感谢Yunnosch的指导