कुछ शर्तों के तहत, आप भौतिक दृश्यों . के साथ तालिका प्रतिबंध लागू कर सकते हैं :
create table tq84_t (
user_id number,
foo varchar2(10),
constraint pk_tq84_t primary key (user_id, foo)
);
create materialized view log on tq84_t;
create materialized view tq84_mv
refresh on commit
as
select user_id, count(*) cnt
from tq84_t
group by user_id;
alter table tq84_mv
add constraint check_max_2_registrations
check (cnt < 3);
इस भौतिक दृष्टिकोण के साथ, जब आप प्रतिबद्ध होते हैं तो Oracle भौतिक दृश्य पर बाधा की जाँच करता है:
insert into tq84_t values (1, 'a');
insert into tq84_t values (1, 'b');
commit;
यह काम। निम्नलिखित नहीं करता है:
insert into tq84_t values (1, 'c');
commit;
इसके साथ विफल हो जाता है
ORA-12008: error in materialized view refresh path
ORA-02290: check constraint (META.CHECK_MAX_2_REGISTRATIONS) violated