CREATE VIRTUAL TABLE的替代方案,如果不是EXISTS

Afr*_*ief 3 c sqlite virtual

根据CREATE VIRTUAL TABLE 语法,IF NOT EXISTS子句不可用.

如果虚拟表已经存在而不使用DROP TABLE IF EXISTS,我应该如何处理这种情况?

我想使用rtree和fts模块.

Set*_*eth 5

您可以使用

select DISTINCT tbl_name from sqlite_master where tbl_name = ?
Run Code Online (Sandbox Code Playgroud)

然后将虚拟表名绑定到您的语句并调用sqlite3_step().如果你得到SQLITE_ROW,那么你的表就存在了.要确定它是虚拟表,请在rootpage列中选中"0".