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

Oracle SQL में बाधा की जाँच करें

एक आउट-ऑफ़-लाइन बाधा का उपयोग करें:

CREATE TABLE Goods_In_Wagon (
  Goods_ID NUMBER(whatever),
  Wagon_ID NUMBER(whatever),
  Total_Weight NUMBER(whatever),
  CONSTRAINT Check_WagID_Weight
    CHECK (Wagon_ID NOT BETWEEN 90 AND 99 OR Total_Weight > 10)
)

अगर Wagon_ID है नहीं 90 और 99 के बीच, बाधा गुजरती है। अगर यह 90 और 99 के बीच है, तो Total_Weight 10 से अधिक होना चाहिए।

इस तरह की एक आउट-ऑफ-लाइन बाधा आपको पंक्ति स्तर पर बाधा तर्क लागू करने की अनुमति देती है, जिसका अर्थ है कि यह किसी भी स्तंभ मान का उपयोग कर सकता है।

परिशिष्ट Wagon_ID . की श्रेणियों के साथ अपडेट किए गए प्रश्न को हल करने का तरीका यहां दिया गया है और Total_Weight . शायद अन्य तरीके भी हैं लेकिन यह "सबसे साफ" जैसा महसूस हुआ, जिसका अर्थ है कि मेरे लिए व्यक्तिगत रूप से पढ़ना सबसे आसान था :)

CREATE TABLE Goods_In_Wagon(
  Goods_ID NUMBER(whatever),
  Wagon_ID NUMBER(whatever),
  Total_Weight NUMBER(whatever),
  CONSTRAINT Check_WagID_Weight
    CHECK (
      (Wagon_ID < 90) OR
      (Wagon_ID BETWEEN 90 AND 99 AND Total_Weight > 10) OR
      (Wagon_ID BETWEEN 100 AND 110 AND Total_Weight > 20) OR
      (Wagon_ID BETWEEN 111 AND 120 AND Total_Weight > 30) OR
      (Wagon_ID > 120)
    )
)


  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. कौन सा जावा डेटा प्रकार Oracle SQL डेटा प्रकार NUMERIC से मेल खाता है?

  3. एसक्यूएल एकाधिक/आश्रित कॉलम का उपयोग करके आइटम आवृत्ति की गणना करता है?

  4. ALTER TABLE स्टेटमेंट में 'ON DELETE CASCADE' कैसे जोड़ें?

  5. जावा लॉगिंग एपीआई (java.util.logging ) का उपयोग करके Oracle जावा संग्रहीत प्रक्रिया को लॉग करना