如何在 sqlite3 命令行调用中指定 PRAGMA?

如何在 sqlite3 命令行调用中指定 PRAGMA?

我创建一个像这样的 SQLite 文件:

sqlite3 output.db < myinserts.sql

不幸的是,这需要几个小时,所以我想通过使用以下 PRAGMA 来加快速度:

PRAGMA synchronous=OFF
PRAGMA count_changes=OFF
PRAGMA journal_mode=MEMORY
PRAGMA temp_store=MEMORY

问题: 如何在命令行中设置它们?
它用于脚本,所以我不需要交互模式,我想在单个命令行中完成所有操作。

答案1

您可以回显您的 PRAGMA,然后使用 cat 将它们添加到您的 sql 中

echo "PRAGMA synchronous=OFF;PRAGMA journal_mode=OFF;PRAGMA temp_store=MEMORY;" | cat - myinserts.sql | sqlite3 output.db

有关在内存中添加文件的其他方法,请参阅https://www.cyberciti.biz/faq/bash-prepend-text-lines-to-file/

答案2

我还没有找到在命令行上指定这些的简单方法,但解决方法可以是将这些行放在 SQL 输入的开头:

echo "PRAGMA synchronous=OFF;PRAGMA count_changes=OFF;PRAGMA journal_mode=MEMORY;PRAGMA temp_store=MEMORY" \
  > tmp.sql
cat myinserts.sql >> tmp.sql
sqlite3 output.db < tmp.sql
rm tmp.sql

相关内容