当前位置: 首页 > 面试题库 >

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

宰父德馨
2023-03-14
问题内容

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

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


问题答案:

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

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

SELECT COUNT(*) FROM theTable;

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



 类似资料:
  • 问题内容: 这在Microsoft SQL Server的T-SQL上是有效的语法,但在SQLite中则无效,在SQLite中是否有相同的替代语法? 问题答案: 通常,将整个联接移到一个子查询中,该子查询查找要删除的行的主键: 如果您有复合主键,则可以使用rowid代替: 如果您有复合主键,并且将该表创建为WITHOUT ROWID 表,则必须将联接重写为相关子查询:

  • 问题内容: 我正在尝试使用Diamond运算符,但是却收到以下消息: -source 1.5中不支持Diamond运算符(使用-source 7或更高版本来启用Diamond运算符) 它可以在Android的netbeans中修复吗? 问题答案: Android需要Java来源合规性5.0或6.0(Java5 / 6)。开箱即用不支持Java7。这些文章描述了有关如何使用某些Java7功能的技巧:

  • 问题内容: 如果我想实现一些可以通过两种方式实现的条件代码。那么哪种方式更好的是条件运算符?:或if..then..else ?? 问题答案: 这取决于。通常,您希望活动的主要流程在代码的结构中表示。如果算法的关键是变量已初始化,那么最好的解决方案是使用条件运算符: 如果决策是了解正在发生的事情的关键问题,那么您将首选。实际上,这意味着当两者都可行时,您将使用。关键是“合理” —如果您发现在子表达

  • 主要内容:SQLite 运算符是什么?,SQLite 算术运算符,实例,SQLite 比较运算符,实例,SQLite 逻辑运算符,实例,SQLite 位运算符,实例SQLite 运算符是什么? 运算符是一个保留字或字符,主要用于 SQLite 语句的 WHERE 子句中执行操作,如比较和算术运算。 运算符用于指定 SQLite 语句中的条件,并在语句中连接多个条件。 算术运算符 比较运算符 逻辑运算符 位运算符 SQLite 算术运算符 假设变量 a=10,变量 b=20,则: 运算符 描述 实

  • 我正在尝试使用diamond运算符,但收到以下消息: Source 1.5中不支持diamond运算符(使用Source 7或更高版本启用diamond运算符) 它在Android的netbeans中是可以修复的吗?

  • 在我的flutter应用程序中,我导入了flutter库。然而,这个库目前不支持flutter Web。图书馆不是我的应用程序使用的必要条件。 主要问题:是否有任何方法来检查导入的库是否不受支持,然后在这种情况下我可以删除部分UI和代码?