sql - Oracle check constraint1 -
मेरे पास डेटा के साथ table x में कॉलम hire_date है
01-jun-98 16 -गाग-99 02-फ़ेबी -0 09 01-मार्च-06 - 01-डीसी-08 17-मार्च-99 16-फ़ेबी -07
मुझे एक जांच बाध्य करने के लिए कहा गया था कि Hire_date कॉलम जांच लें कि किराया-दर 2000 के बाद आता है। मैं एक त्रुटि देख रहा हूं, मैंने यह देखने के लिए फिर से कोशिश की कि किराया 1 99 1 के बाद क्या आता है। बाधा सफलतापूर्वक बनाई गई थी।
कोड:
परिवर्तन तालिका x जोड़ें बाधा check_hire_date चेक (hire_Date & gt; '01 -जान) के लिए एक चेक बाधा उत्पन्न करते समय मुझे एक त्रुटि क्यों दिखाई गई? -2000 ')
त्रुटि मिलती है
तालिका को बदलना x प्रतिबंध बाधा चेक_हार्ड_डेट जांच (किरायादैकेट & gt;' -01 -जन -1996 ')
< / Pre>सफल
आपको त्रुटि मिली कारण स्पष्ट है। आपके कुछ डेटा बाधा का उल्लंघन करते हैं जब आप किसी तालिका में एक बाधा जोड़ते हैं, तो यह सभी डेटा को बाधा में मान्य करेगा।
आप सत्यापन को छोड़ने के लिए novalidate
विकल्प का उपयोग कर सकते हैं यदि आप बाध्यता बनाते समय novalidate
विकल्प लागू करते हैं, तो आप बाधा को जोड़ सकते हैं, जबकि आप पुराने (= वर्तमान) तिथि को बाध्यता के साथ मान्य नहीं करते हैं। बाधा डेटा को प्रभावित करेगी जो बाध्यता निर्माण के बाद डाली गई है।
sql & gt; तालिका बनाओ x (किराया_डेट तारीख); एसक्यूएल & gt; एक्स मानों में डालें ('1998-01-01'); एसक्यूएल & gt; एक्स मानों में डालें ('2000-01-05'); एसक्यूएल & gt; * एक्स से चुनें; HIRE_DAT -------- 98/01/01 00/01/05 sql & gt; तालिका में परिवर्तन एक्स जोड़ बाधा d_check चेक 2 (किराया_डेट & gt; = to_date ('2000-01-01', 'yyyy-mm-dd')) 3 novalidate; एसक्यूएल & gt; एक्स मानों में डालें ('1999-01-01'); एक्स मानों ('1 999-01-01') * त्रुटि 1 पंक्ति में दर्ज करें: जांच बाधा (डी_चेक चेक) का उल्लंघन किया गया
Comments
Post a Comment