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

ओरेकल - उपयोगकर्ता को एकाधिक पंक्तियों को सम्मिलित करने के लिए कैसे बाध्य करें

मानक प्रस्तावना के साथ कि वास्तविक दुनिया में आप वास्तव में इस तरह का काम नहीं करेंगे...

आपको वास्तव में यहां एक स्टेटमेंट-लेवल ट्रिगर का उपयोग करने की आवश्यकता होगी। अगर आपको हर बार हर कमरे की जाँच करने के प्रदर्शन से कोई फर्क नहीं पड़ता है

CREATE OR REPLACE TRIGGER Living_AIUD
  AFTER INSERT OR UPDATE OR DELETE
  ON Living
DECLARE
  Count NUMBER;
BEGIN
  FOR x IN (SELECT rid, count(*) cnt
              FROM living
             GROUP BY rid
            HAVING COUNT(*) < 3)
  LOOP
    RAISE_APPLICATION_ERROR(-20002, 'Too few people in room ' || x.rid);
  END LOOP;
END Living_AIUD;

अगर आप हर बार हर कमरे के लिए इसकी जांच नहीं करना चाहते हैं, तो आपको rid के संग्रह के साथ एक पैकेज की आवश्यकता होगी मान, एक पूर्व कथन ट्रिगर जिसने संग्रह को प्रारंभ किया, और एक पंक्ति-स्तरीय ट्रिगर जिसने :new.rid जोड़ा संग्रह के लिए मूल्य। आपका आफ्टर स्टेटमेंट ट्रिगर तब संग्रह के तत्वों पर पुनरावृति करेगा और केवल उन कमरों में लोगों की संख्या की जांच करेगा।




  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. iReport पैरामीटर के माध्यम से क्वेरी करने के लिए SQL ऑपरेटरों को पास करना

  3. Oracle JDBC:डबल में अंडरफ्लो

  4. पूर्व द्वारा कनेक्ट के साथ अद्यतन क्वेरी के लिए SQL सिंटैक्स

  5. विवरण ऑपरेशन के साथ कॉलम की टिप्पणियां कैसे दिखाएं