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

时间:2011-02-16 03:05:10

标签: c sqlite virtual

根据 CREATE VIRTUAL TABLE syntax IF NOT EXISTS 子句为not available

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

我想使用rtree和fts模块。

2 个答案:

答案 0 :(得分:5)

您可以使用

select DISTINCT tbl_name from sqlite_master where tbl_name = ?

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

答案 1 :(得分:1)

从sqlite 3.7.11开始支持此功能。

changelog