Sqlite

使用點命令編寫 SQLite 腳本

  • June 18, 2021

是否可以編寫包含 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

引用自:https://dba.stackexchange.com/questions/175986