我的SQLite版本不支持IF EXISTS
运算符。如何在没有误报我的情况下放下可能存在或可能不存在的表格?
我现在无法更新实时应用程序的版本,因此我无法使用支持IF EXISTS
的SQLite版本。
答案 0 :(得分:111)
您可以使用:
DROP TABLE IF EXISTS TABLE_NAME;
答案 1 :(得分:22)
official documentation表示使用IF EXISTS,所以我怀疑你的最佳计划是升级。
如果你不能,你需要看看你是否可以对表进行一些微不足道的操作,无论表是否为空都会成功;如果成功则应该删除该表,如果失败则表已经消失。要尝试的操作类型的示例可能是:
SELECT COUNT(*) FROM theTable;
请注意,您需要在语言级别捕获可能的错误,并且您可能希望将整个批次(探测,错误陷阱,丢弃表)包装在事务中。当然,如果您正在进行错误处理,另一种方法是删除表并处理错误。
答案 2 :(得分:5)
请使用此功能。
DROP TABLE TABLE_NAME;
答案 3 :(得分:3)
您可以以某种方式使用查询中的元数据表来查明表是否存在:
SELECT count(*) > 0 FROM sqlite_master where tbl_name = "<table_name>" and type="table"