当不支持IF EXISTS运算符时,删除SQLite中的现有表

Hyd*_*erA 39 sql database sqlite

我的SQLite版本不支持IF EXISTS运营商.如何在没有错误的情况下丢弃可能存在或可能不存在的表格?

我现在无法在实时应用程序上更新版本,因此我无法使用支持的SQLite版本IF EXISTS.

小智 116

您可以使用:

DROP TABLE IF EXISTS TABLE_NAME;
Run Code Online (Sandbox Code Playgroud)

  • OP实际上无法做到这一点,并在问题中说了同样多的内容。 (2认同)

Don*_*ows 22

官方文件说,使用IF存在,所以我怀疑你的最佳方案就是升级.

如果你不能,你需要看看你是否可以对表进行一些微不足道的操作,无论表是否为空都会成功; 如果成功则应该删除该表,如果失败则表已经消失.要尝试的操作类型的示例可能是:

SELECT COUNT(*) FROM theTable;
Run Code Online (Sandbox Code Playgroud)

请注意,您需要在语言级别捕获此可能的错误,并且您可能希望将整个批次(探测,错误陷阱,删除表)包装在事务中.当然,如果您正在进行错误处理,另一种方法是删除表并处理错误.


小智 5

只需使用它.

DROP TABLE TABLE_NAME;
Run Code Online (Sandbox Code Playgroud)