【问题标题】:How to empty a table in SQLITE once a limit is reached?达到限制后如何清空 SQLITE 中的表?
【发布时间】:2021-01-14 17:36:22
【问题描述】:

假设我有一个名为 events 的表。我想知道如何限制表中的行数。 例如,

当表中有 30 行时,我想在 android studio 中打印所有行,然后清空表而不删除其结构。

已编辑:

我知道命令“DELETE”。但是,我想知道是否有一种机制可以仅在表中填充了 30 行时才调用此 DELETE 函数。

【问题讨论】:

  • 这是 SQL 对吧?那么delete 怎么样?
  • 如何设置限制条件?只有当它达到 30 行时,我才想删除。每秒检查数据库是一项昂贵的操作。 @ScaryWombat
  • 插入前检查计数

标签: java android sqlite kotlin android-sqlite


【解决方案1】:

创建一个触发器,在每次插入新行后检查表中的行数,如果该数 >= 30,则表被清除:

CREATE TRIGGER Clear_Table
AFTER INSERT ON tablename
WHEN (SELECT COUNT(*) FROM tablename) >= 30
BEGIN
  DELETE FROM tablename;
END;

【讨论】:

    【解决方案2】:

    我是 sqlite 的新手。但是如果我处于你的状态,我会用下面的查询做空表。

    DELETE FROM TARGET_TABLE
    

    执行此查询后,我可以再次插入,没有问题。

    【讨论】:

    • 我知道这个命令。请再次检查问题。
    • @coder 好的,然后考虑forpas的答案。我检查了它的工作原理。
    【解决方案3】:

    这取决于您在表格中插入的函数。

    在您的插入方法中,您首先需要通过“计数”功能检查表中的条目数,如果它们超过 30 或者您需要运行“删除”命令的任何计数。

    没有针对此类要求的预定义命令。

    【讨论】:

      猜你喜欢
      • 2012-03-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-02-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多