如何在命令批处理文件中执行完SQL插入后退出SQLite?
解决SQLite执行数据插入后自动退出的问题
问题根源
你使用-init参数执行初始化脚本时,SQLite默认会在脚本执行完毕后进入交互模式——哪怕脚本里写了.quit或.exit,脚本执行完成后程序仍会自动启动交互会话,所以才会停留在sqlite>提示符。
三种可行解决方案
方案1:添加批处理模式参数(最推荐)
在命令中加入-batch,强制SQLite以非交互的批处理模式运行,执行完初始化脚本后直接退出:sqlite3 -batch -init ./import-all.sql ./database.sqlite方案2:通过标准输入执行脚本
把脚本内容直接重定向给sqlite3,程序读完所有命令后会自动退出:sqlite3 ./database.sqlite < ./import-all.sql方案3:直接在命令行指定所有操作
不需要单独的import-all.sql文件,把读取脚本和退出命令直接写在一行:sqlite3 ./database.sqlite ".read ./things-to-import-001.sql" ".read ./things-to-import-002.sql" ".quit"
内容的提问来源于stack exchange,提问作者David Yell
相关产品推荐
相关产品推荐

