DELETE ... LIMIT子句的解决方法(SQL)

时间:2011-12-22 00:42:32

标签: sql sqlite

我正在开发一个支持SQLite的数据库查询抽象层。

不幸的是,SQLite不支持DELETE(和UPDATE等)查询中的LIMIT子句 - 除非在更新版本中使用特殊标志进行编译。

那么我是否可以实现任何解决方法,以便仍然可以支持该查询类型?

1 个答案:

答案 0 :(得分:1)

虽然您的SQLite构建中不支持LIMIT,但您可以通过实现在子查询中使用LIMIT select来识别将要更新或删除的行的方法来重现行为。您应该知道,与使用启用LIMIT的SQLite构建相比,这会导致性能下降,但如果您需要这些功能,这似乎是一个可行的选择。

如果您正在使用大量数据或发现尝试此操作的性能太严重,则另一个选项是使用LIMIT select来填充临时表,然后作为您的一部分加入该表删除或更新。