如何检查 SQLite 数据库是否是内存数据库

Sis*_*cia 4 sqlite

我有一个用于连接 sqlite3 数据库的处理程序。我想知道该数据库是否是内存数据库。

有没有API可以做到这一点?

Sch*_*ern 5

在 C API 层,您可以使用它sqlite3_db_filename来获取文件名。如果它是 NULL 或空,则您有一个临时数据库或内存数据库。

sqlite3_db_filename(D,N) 接口返回一个指向与连接 D 的数据库 N 关联的文件名的指针。主数据库文件的名称为“main”。如果数据库连接 D 上没有附加数据库 N,或者数据库 N 是临时数据库或内存数据库,则此函数将返回 NULL 指针或空字符串。

无论您使用什么客户端 API 库,其行为都可能相同:文件名将为空。