c - 如果不存在则创建虚拟表的替代方法

标签 c sqlite virtual

根据创建虚拟表 syntax , IF NOT EXISTS 子句是 not available .

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

我想使用 rtree 和 fts 模块。

最佳答案

你可以使用

select DISTINCT tbl_name from sqlite_master where tbl_name = ?

然后将虚拟表名称绑定(bind)到您的语句并调用 sqlite3_step()。如果你得到 SQLITE_ROW 回来,那么你的表存在。要确定它是一个虚拟表,请检查 rootpage 列中的“0”。

关于c - 如果不存在则创建虚拟表的替代方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5012103/

相关文章:

linux - 调试时直观地查看虚拟内存使用情况

c++ - 指针转换导致 C++ 崩溃

java - 尝试通过管道将 C 中生成的数据传递给 Java 类。传递变量在java中显示为空白而不是有数据

c - 如何使用 C api 获取(lotus)笔记中的 View 列表

c - 是否有任何工具可以从一组 C 文件中提取所有变量(公共(public)变量和静态变量)?

C# SQLite 删除行非常慢

swift - 无法插入到 sqlite3 swift 中的 sqlite_sequence 表中

c - 我自己的 getline 版本出现段错误

android - 使用类的 Sqlite 数据未显示在回收器列表中

c++ - 覆盖派生类上的虚函数并仍然调用基本功能