You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SQLite导入CSV至数据库表失败,请求排查问题原因

SQLite CSV导入失败排查与解决

以下是针对你遇到的导入问题的具体排查步骤和解决方案:

1. 移除.import命令后的分号

SQLite的点命令(以.开头的命令)不需要以分号结尾,你当前命令末尾的;会被识别为文件路径的一部分,导致无法找到正确的CSV文件。修改后的命令:

.import --csv --skip 1 c:/Business_Analytics/SQlite/Data/People.csv People

2. 修正主键设置(最可能的核心问题)

你的People表将Region设为主键,这意味着每个Region只能存在一条记录。如果CSV文件中存在同一个Region对应多个Person的情况,导入时所有重复Region的行都会被SQLite自动跳过,最终导致表中无数据。

建议修改表结构,使用复合主键或添加自增ID主键:

-- 删除原有空表
DROP TABLE People;

-- 方案1:使用复合主键(避免同一人员在同一区域重复)
CREATE TABLE People 
(
  Person Text,
  Region Text, 
  PRIMARY KEY (Person, Region)
);

-- 方案2:添加自增ID主键(更灵活)
CREATE TABLE People 
(
  ID INTEGER PRIMARY KEY AUTOINCREMENT,
  Person Text,
  Region Text
);

3. 验证CSV文件与路径

  • 确认CSV文件确实存在于指定路径c:/Business_Analytics/SQlite/Data/People.csv,检查文件名拼写、大小写(Windows系统不敏感,但尽量保持一致)
  • 打开CSV文件,确认:
    • 第一行是表头(对应--skip 1参数,会跳过第一行)
    • 字段分隔符确实是逗号,若字段内容包含逗号,需用双引号包裹(例如"Smith, John",West)

4. 启用导入错误提示

执行导入前添加--verbose参数(SQLite 3.30.0及以上版本支持),可以查看导入时的详细错误信息,帮助定位问题:

.import --csv --skip 1 --verbose c:/Business_Analytics/SQlite/Data/People.csv People

完成以上修改后,重新执行导入命令,再用SELECT count(*) FROM People;验证数据是否成功导入。

内容的提问来源于stack exchange,提问作者Noah Hickman

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.30 21:12:22