如何打开SQLite3数据库而不冒创建新数据库的风险?

时间:2016-08-17 05:23:32

标签: database sqlite

如果我不小心将不存在的数据库文件传递给sqlite3,我希望收到错误或类似内容的通知。

但是命令sqlite3 my.db将打开my.db 如果它不存在则创建它。如果我发出以下内容,则存在相同的行为:

> sqlite3
sqlite> .open my.db

如果有一个选项我将数据库文件传递给但是如果它不存在则会失败?

2 个答案:

答案 0 :(得分:0)

您可以检查文件系统上是否存在该文件。

答案 1 :(得分:0)

在SQLite C API中,函数sqlite3_open_v2允许您指定是否要创建新数据库。

sqlite3命令行shell始终指定CREATE标志,并且没有禁用它的机制。

您可以执行.dbinfo之类的命令来检查您是否确实拥有数据库,或者在实际执行sqlite3之前编写一个检查文件的shell脚本/批处理文件。