是否可以编写包含 SQLite 点命令( vis. .read file.sql; .separator ,; .import file.csv;)的脚本?
我正在构建并反复重建 SQLite 数据库,每次重建数据库时都需要输入大约 24 个点命令语句。如果我可以将这些命令放在脚本中并让 SQLite 读取它们,那就太好了。
有没有办法将点命令(而不是SQL 语句)放入脚本并让 SQLite 运行它们?
我在 Mac OS X 上使用 bash。
我昨晚在互联网上搜索了答案,但一无所获。当然,今天在发布这个问题后,我再试一次 -几乎立即找到了足够的回复。
它的要点是什么?将您的命令放在一个文本文件中,并使用输入文件描述符将其定向到 SQLite,或者只是在 bash 脚本中编写所有内容。
sqlite3 database.db < commands.txt
#!/bin/bash --
sqlite3 -batch $1 <<"EOF"
CREATE TABLE log_entry ( <snip> );
.separator "\t"
.import logfile.log log_entry
EOF
Run Code Online (Sandbox Code Playgroud)
然后在命令行上:
import.sh database.db
Run Code Online (Sandbox Code Playgroud)