我正在开发一个支持SQLite的数据库查询抽象层。
不幸的是,SQLite不支持DELETE(和UPDATE等)查询中的LIMIT
子句 - 除非在更新版本中使用特殊标志进行编译。
那么我是否可以实现任何解决方法,以便仍然可以支持该查询类型?
答案 0 :(得分:1)
虽然您的SQLite构建中不支持LIMIT,但您可以通过实现在子查询中使用LIMIT select来识别将要更新或删除的行的方法来重现行为。您应该知道,与使用启用LIMIT的SQLite构建相比,这会导致性能下降,但如果您需要这些功能,这似乎是一个可行的选择。
如果您正在使用大量数据或发现尝试此操作的性能太严重,则另一个选项是使用LIMIT select来填充临时表,然后作为您的一部分加入该表删除或更新。