我正在学习Hibernate使用Oracle作为后端创建一个基本的控制台应用程序。我有一张桌子,如果学生输入第七条记录,则不应允许他这样做。我该怎么做?
答案 0 :(得分:2)
在触发器旁边,您可以创建实例化视图,然后在表上创建检查约束。
create materialized view log on test_table;
create materialized view mv_test_table
refresh FAST on COMMIT
ENABLE QUERY REWRITE
as
select id, count(*) cnts
from test_table
group by id;
alter table test_table
add constraint check_userid
check (cnts< 7);
答案 1 :(得分:0)
您还可以使用简单的触发器(前提是您的表具有ID列):
create or replace trigger trg_limit_row
after insert on your_table
for each row
begin
if :new.id >5 then -- assume that you have id in range (0-5) -> 6 rows
execute immediate 'delete from your_table t where t.id = '
|| ':' || 'new_id';
end if;
end;
/