admin

如果不支持IF EXISTS运算符,则在SQLite中删除现有表

sql

我的SQLite版本不支持该IF EXISTS运算符。我如何删除一个可能存在或可能不存在的表,而不会遇到一个错误?

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


阅读 185

收藏
2021-05-10

共1个答案

admin

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

如果不能,则需要查看是否可以对表执行一些琐碎的操作,无论该表是否为空,该操作都会成功。如果成功,则应删除该表,如果失败,则该表已消失。可以尝试的一种操作示例如下:

SELECT COUNT(*) FROM theTable;

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

2021-05-10