SQLObject:如何从表中删除前N个对象?

2024-05-16 14:28:25 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个应用程序跟踪项目并使用SQLObjectpythonORM。在某个时间点,应用程序会检查表是否太大,如果表中的项超过10000个,则会删除第一个N项,因此它是表中的10000个项。通过SQLObject写下这篇文章的优雅而有效的方法是什么?我所追求的所有解决方案都是缓慢而笨拙的:(。在


Tags: 项目方法应用程序时间解决方案检查表篇文章sqlobject
3条回答

如上所述,我意识到这是一个老帖子,但其他观众可能会觉得这很有用。 我不确定这将切片select的效率有多高(假设在添加记录时记录id是升序的)。在

^{1}$

未经测试,但我经常使用deleteMany()。在

我知道这个帖子很旧,但我想发布一个条目,以防有人通过谷歌搜索找到它,就像我一样。在

我有一个类似的问题,我需要自定义删除调用。SQLObject为您提供了两个选项,用于使用自定义where子句创建SQL DELETE:

我选择了第二个选项,因为它更灵活、更精简:

^{1}$
  • dsqlMetricseries:SQLObject子类,表示DB表的model类
  • _connection:SQLObject内部DB连接的句柄
  • 查询:用于执行任何SQL语句的SQLObject方法

我个人没有使用SQLOBJECT。所以这是一个基于ordering records by inserted date的简单的delete语句,最早的N记录将被删除,它位于MYSQL中。无法设置^{} clause using a variable due to this bug,因此我使用了最直接的方法。在

对于这个示例,我使用了阈值作为6,因为很难有{}。。。在

示例表:

^{1}$

选择的记录:

^{pr2}$

上面的查询按col1对记录进行排序,您可以根据自己的情况对其进行更改。所以delete查询可以建立在最后一个select上。所以最好写一个storedprocedure…因为这是一堆语句。。。在

相关问题 更多 >