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

किसी विशिष्ट मान के लिए तालिका में केवल 3 पंक्तियों को जोड़ने की अनुमति दें

इसके लिए एक अभिकथन की आवश्यकता होती है, जिसे SQL मानक में परिभाषित किया गया है लेकिन Oracle में लागू नहीं किया गया है। (यद्यपि उन्हें पेश करने के लिए कदम हैं )।

आप इसे पारदर्शी रूप से लागू करने के लिए एक भौतिक दृष्टिकोण का उपयोग कर सकते हैं।

create materialized view project_manager
refresh on commit 
as 
select Project_manager_employee_id
        , count(*) as no_of_projects
from project
group by Project_manager_employee_id
/

जादू है:

alter table project_manager
   add constraint project_manager_limit_ck check 
       ( no_of_projects <= 3 )
/

यदि प्रबंधक के लिए परियोजनाओं की संख्या तीन से अधिक हो जाती है, तो यह चेक बाधा भौतिक दृश्य को ताज़ा होने से रोकेगी, जो विफलता ट्रिगर डालने या अद्यतन को विफल करने का कारण बनेगी। बेशक यह सुरुचिपूर्ण नहीं है।

चूंकि एमव्यू प्रतिबद्ध (यानी लेन-देन) पर रीफ्रेश किया गया है, इसलिए आपको project पर एक लॉग बनाना होगा टेबल:

create materialized view log on project


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Oracle डालने में विफलता:मान्य माह नहीं

  2. जावा से एसक्लप्लस स्क्रिप्ट चलाने का आसान तरीका

  3. एक समूह में एक रिकॉर्ड का मूल्य बहिष्कृत करें यदि कोई अन्य मौजूद है v2

  4. Oracle:किसी अन्य तालिका में पंक्ति प्रकार डेटा सम्मिलित करें

  5. oracle - किन कथनों को करने की आवश्यकता है?