Oracle
 sql >> डेटाबेस >  >> RDS >> Oracle

पंजीकरण की संख्या सीमित करने के लिए ओरेकल चेक बाधाओं का उपयोग कैसे करें?

कुछ शर्तों के तहत, आप भौतिक दृश्यों . के साथ तालिका प्रतिबंध लागू कर सकते हैं :

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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. सबक्वेरी - उच्चतम स्कोर प्राप्त करना

  2. Oracle में ASCIISTR () फ़ंक्शन

  3. तीन कॉलम से मूल्य स्टोर करने में मदद चाहिए

  4. IF ELSE स्टेटमेंट जोड़ें

  5. मैं समग्र कुंजी पर क्लस्टर कैसे जोड़ूं?