如何将CSV文件导入已附加数据库?执行无报错但未插入数据
解决SQLite导入CSV到附加数据库表无数据的问题
以下是几个排查和解决方向:
检查CSV文件路径有效性
Windows系统下,可尝试将路径中的正斜杠替换为转义反斜杠(\\),或者直接用正斜杠但先确认C:/1/05112022.CSV文件确实存在。可通过执行命令验证:Windows用!dir C:/1/05112022.CSV,Linux/macOS用!ls C:/1/05112022.CSV。确认表结构与CSV匹配
确保E.E_table的列数、数据类型和CSV文件完全对应。如果CSV包含表头行,需先开启表头识别:.mode csv .headers on .import C:/1/05112022.CSV E.E_table若CSV无表头,要保证CSV列顺序和表列顺序完全一致,否则会因列不匹配静默失败。
验证附加数据库的表名
执行SELECT name FROM E.sqlite_master WHERE type='table';查看附加数据库E中的表列表,确认E_table存在且拼写一致(SQLite在Linux等区分大小写的系统中,表名大小写敏感)。开启更详细的错误检查
执行以下命令开启外键约束和完整性检查,暴露潜在的约束冲突问题:.pragma foreign_keys = ON .pragma integrity_check用临时表验证导入流程
先将CSV导入临时表确认数据能正常读取:.mode csv .import C:/1/05112022.CSV temp_table SELECT * FROM temp_table LIMIT 5;如果临时表有数据,再将数据插入目标表:
INSERT INTO E.E_table SELECT * FROM temp_table; DROP TABLE temp_table;这种方式可分离“CSV读取”和“插入到目标表”的问题,定位故障环节。
内容的提问来源于stack exchange,提问作者X Y
相关产品推荐
相关产品推荐

