SQLite - 每天将 .csv 数据导入数据库

Posted

技术标签:

【中文标题】SQLite - 每天将 .csv 数据导入数据库【英文标题】:SQLite - Importing .csv data to database every day 【发布时间】:2021-04-12 01:29:17 【问题描述】:

所以我需要每天在我们公司导入一些 .csv 文件。我的想法是编写一个 .bat 文件并每天通过任务计划程序自动运行它。问题是我无法正确写入 .bat 文件。当我在 CMD (sqlite3) 中实际输入时它正在工作,但当我将其转换为 .bat 文件并运行它时不做任何事情。

CMD:

C:\WINDOWS\system32>sqlite3.exe
SQLite version 3.34.0 2020-12-01 16:14:00
Enter ".help" for usage hints.
Connected to a transient in-memory database.
Use ".open FILENAME" to reopen on a persistent database.
sqlite> ATTACH DATABASE "C:\...\database.db" AS "name";
sqlite> .mode csv
sqlite> .separator ;
sqlite> .headers on
sqlite> .import "\\\\path\\..." "dbname"
sqlite> SELECT * from "dbname"

结果是我想要的方式,所以所有的数据都在数据库中正确。

有人知道如何将其转换为 .bat 文件吗?

【问题讨论】:

您是否尝试将您的 sqlite 命令放入 .sql 文件并将其与输入重定向一起使用? 你的 .bat 文件是什么样的? @MarkBenningfield 与 CMD 几乎相同。 @Compo 是的,我试过了,方法更复杂。 好吧,我认为它一点也不复杂,而且我认为你应该这样做。您尝试的方式不正确,并且不会起作用。 【参考方案1】: 为 sqlite 脚本创建一个文本文件 批处理文件类似于sqlite3 ":memory:" ".read sqlite.script"

等等! sqlite3 的第一个参数是数据库名称,后面的参数是 CLI “可执行文件”。

【讨论】:

【参考方案2】:

我们找到了一个可行的解决方案!我用下面的代码创建了一个 .bat 文件:

 @ECHO off
 sqlite3.exe -cmd ".mode csv" -cmd ".separator ";"" -cmd ".import C:\\the path to the .csv file\\ myTable" C:\the path to the database
 pause

它可以与任务调度程序一起使用。

谢谢大家!

【讨论】:

以上是关于SQLite - 每天将 .csv 数据导入数据库的主要内容,如果未能解决你的问题,请参考以下文章

Qt操作Sqlite类封装,及命令行导入csv文件到Sqlite数据库

Qt操作Sqlite类封装,及命令行导入csv文件到Sqlite数据库

使用 Python 将 CSV 文件导入 sqlite3 数据库表

从 CSV 文件填充 Android 数据库?

如何将加载 .sql 或 .csv 文件导入 SQLite?

iPhone:将 CSV 文件导入 Sqlite 数据库时应使用哪种编码方案