我想限制可以插入表中的最大可能行数。是否有可能在数据库中有这样的约束?
答案 0 :(得分:1)
根据您的数据库系统,您可以使用触发器执行此操作。它可以计算每个插入的记录数(或者明显更好,在插入和删除时缓存它),并在它达到一定数量时拒绝它。
但对我来说,这听起来像是一个非常奇怪的要求。这肯定是合理的反直觉(对我来说,无论如何)。也许您可能希望在达到某个数字时“归档”,或执行一些复杂的任务。但作为后台任务(恕我直言),这会更好(明显更好)。
答案 1 :(得分:0)
您使用的是哪个数据库?如果是BEFORE INSERT Trigger,你可以这样做。此外,一些数据库提供了可扩展性。
Oracle和MySQL肯定支持它们,不确定SQL Server。在触发器中,您可以调用SELECT COUNT(*)FROM TABLE,然后在达到限制时取消。
答案 2 :(得分:0)
SQL约束通常会限制插入或复制的类型,但不会限制插入信息的数量。
但是,您应该能够限制插入客户端的插入。在SQL端,如果记录数超过给定数量,您可以使用触发器来阻止插入。
答案 3 :(得分:0)
如果这是一个可能随时间变化的业务规则,我根本不会将代码放在数据库中,而是放在上面调用它的层中。
此时,您需要验证业务层,以确定在执行插入操作之前是否满足规则。