【发布时间】:2014-01-07 08:38:56
【问题描述】:
我有一个表,它需要一个触发器来保持总行数为 100。触发器的工作方式是,一旦有新行插入表中,最旧的行将被删除。显然,我需要在触发器开始工作之前检查总行数是否已经达到 100。
我考虑使用WHEN (condition)作为触发器,这里的条件可以是子查询(SELECT count(*) FROM mytablename)>100。但问题是目前 WHEN 条件不支持子查询。
不幸的是,我没有找到另一种方法来计算表中的行数而不编写查询。
知道如何处理吗?有没有其他方法来配置触发器?还是我应该检查触发器之外的阈值?
【问题讨论】:
-
我很想看看你为什么要这样做。将表限制为 100 行的目标是什么?你必须有多严格?你关心你是否得到 104 行?
-
@CraigRinger 好点!我不在乎我是否得到 104 行!严格来说可以不超过 100 行,但应该比这更大,并且不会超过很多。如果你问我为什么要这样做,我不得不说它只是需要这样。
标签: postgresql triggers