Sql 如何限制oracle表具有有限的记录

Sql 如何限制oracle表具有有限的记录,sql,database,oracle,Sql,Database,Oracle,如果我们可以限制oracle表最多容纳20k条记录,请任何人帮助我,如果有人试图插入超过20k条记录,它将抛出一个错误。我可以在这里想到dB触发器,任何建议都不适用于此类任务。触发器不应该强制执行完整性。为什么? 如果两个用户插入最后一个允许的行,则两个触发器在检查提交的数据时都会成功 为了保持完整性,设计了检查约束 在您的情况下(允许简化为三行),它将是 create table tab (id INT primary key check (id between 1 and 3)); ins

如果我们可以限制oracle表最多容纳20k条记录,请任何人帮助我,如果有人试图插入超过20k条记录,它将抛出一个错误。我可以在这里想到dB触发器,任何建议都不适用于此类任务。触发器不应该强制执行完整性。为什么?

如果两个用户插入最后一个允许的行,则两个触发器在检查提交的数据时都会成功

为了保持完整性,设计了检查约束

在您的情况下(允许简化为三行),它将是

create table tab
(id INT primary key check (id between 1 and 3));

insert into tab(id) values(1);
insert into tab(id) values(2);
insert into tab(id) values(3);
insert into tab(id) values(4);
ORA-02290: check constraint (REPORTER.SYS_C0011024) violated

您可以使用序列或标识列添加自动密钥分配。

您可以使用触发器,或者在插入前检查记录并做出决定,或者如果表有标识列,则使用该列插入或抛出错误您试图解决的业务问题是什么?这似乎是一个非常随机的要求。