Sqlite
使用點命令編寫 SQLite 腳本
是否可以編寫包含 SQLite 點命令( vis.
.read file.sql; .separator ,; .import file.csv;
)的腳本?我正在建構並反復重建 SQLite 數據庫,每次重建數據庫時都需要輸入大約 24 個點命令語句。如果我可以將這些命令放在腳本中並讓 SQLite 讀取它們,那就太好了。
有沒有辦法將點命令(不是SQL 語句)放入腳本並讓 SQLite 執行它們?
我在使用 bash 的 Mac OS X 上。
我昨晚在網際網路上搜尋了答案,但一無所獲。當然,今天發布此問題後,我再次嘗試 -幾乎立即找到適當的回复。
它的要點?將您的命令放在一個文本文件中並使用輸入文件描述符將其定向到 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
然後在命令行上:
import.sh database.db