零字节文件是有效的sqlite数据库吗?

时间:2014-07-30 00:21:23

标签: sqlite

当我在带有标志SQLITE_OPEN_READWRITE的零字节文件上调用sqlite3_open_v2()时,该函数返回零。然后是“PRAGMA quick_check;”语句返回包含字符串“ok”的行。那么零字节文件被认为是有效的数据库?似乎有点违反直觉?

2 个答案:

答案 0 :(得分:0)

我不认为它有效"。如果它的零字节,它什么都没有,除了参考。是的你可以打开它。但如果文件有> = 1个字节,则无效。

因此只要文件是0字节,就可以打开它,一旦开始进行更改,它就会变成一个sqlite文件。

如果您打开非sqlite文件并尝试进行更改,则会显示错误消息:

  

错误:文件已加密或不是数据库

答案 1 :(得分:0)

创建新的空数据库的(唯一)方法是尝试打开不存在的文件。 零大小的文件被认为是相同的;它只是一个空数据库。

必须在打开的数据库连接中设置一些设置(例如page size),但这会影响数据库文件的结构。 因此,SQLite会延迟实际编写数据库结构,直到实际需要它为止。