0

我看到我们不能在创建虚拟表语句中使用“如果不存在”

CREATE VIRTUAL TABLE WORLD_LIST IF NOT EXISTS USING FTS3(_ID INTEGER PRIMARY KEY AUTOINCREMENT, WORD TEXT)

如果我删除IF NOT EXISTS它,它只能工作一次。有没有其他选择。

4

2 回答 2

1

您可以测试表的存在,然后相应地分支:

SELECT DISTINCT tablename from sqlite_master where tablename = ?
于 2012-06-19T19:36:08.290 回答
1

它只工作一次,因为该表已经存在第二次。由于名称冲突,您收到错误消息。它按预期工作。你期待不同的东西吗?

不执行该语句将是一个不错的选择。不建议将是否运行该语句的决定推送到存储逻辑中。

如果您正在测试并希望每次都重新创建,那么只需删除表。

DROP TABLE WORLD_LIST;
CREATE VIRTUAL TABLE WORLD_LIST USING FTS3...
于 2012-06-19T19:47:25.520 回答