SQLite:停止插入:应为n列,但找到m列
我正在使用SQLite:停止插入:应为n列,但找到m列,sqlite,csv,error-handling,insert,Sqlite,Csv,Error Handling,Insert,我正在使用.import命令将大型csv插入SQLite数据库。不幸的是,有些行在字段的值中包含delimeter。例如,每行的格式如下: id, title, first name, last name, location 但有些行具有如下值: 1, Mr, Bob, Saget, Sydney, Australia 位置字段中的逗号会导致预期的5列错误,但发现6列错误。幸运的是,插入每一行对我来说并不重要,所以我不想插入任何引起此错误的行。这可能吗 使用正则表达式解析csv是最后的选择
.import
命令将大型csv插入SQLite数据库。不幸的是,有些行在字段的值中包含delimeter。例如,每行的格式如下:
id, title, first name, last name, location
但有些行具有如下值:
1, Mr, Bob, Saget, Sydney, Australia
位置字段中的逗号会导致预期的5列错误,但发现6列错误。幸运的是,插入每一行对我来说并不重要,所以我不想插入任何引起此错误的行。这可能吗
使用正则表达式解析csv是最后的选择,因为该文件非常大,每次需要导入时可能需要几分钟。包含分隔符的字段必须正确引用。@CL.好的,但是有问题的行没有正确引用,那么我处理该输入的选项是什么?正确引用或删除它们。(您有sed
?或支持正则表达式的编辑器吗?)我有权访问sed
。但是,这是最后的办法,因为文件大于1GB,我需要每天多次运行脚本。SQLite是否有处理此类错误的方法?我觉得很奇怪,它会向我显示一个错误,然后仍然将数据插入表中,而我完全知道它是坏数据;.import
命令用于导入.export
ed数据。如果您有不同的格式,请编写自己的导入程序,或转换数据。