2013-08-23 6 views
14

वाले कॉलम पर शून्य नलिका को कैसे जोड़ना है मेरे पास एक कॉलम वाला एक टेबल है जिसमें कुछ शून्य मान हैं। मैं उस कॉलम पर NOT NULL बाधा जोड़ना चाहता हूं, मौजूदा नल को गैर-शून्य मान में अपडेट किए बिना। मैं मौजूदा शून्य मानों को रखना चाहता हूं और भविष्य की पंक्तियों की जांच करना चाहता हूं जिसमें उनके पास इस कॉलम के लिए शून्य मान नहीं है। क्या यह संभव है? कैसे?शून्य मान

+4

एक छोटे से पागल लगता है अपनी खुद की बाध्यताओं का उल्लंघन किया जाना है। या तो यह है या इसे शून्य होने की अनुमति नहीं है। आम तौर पर, उस तरह का, उम, लचीलापन आपके डेटाबेस को खिलाने वाले एप्लिकेशन में सेट होता है, डेटाबेस में नहीं। जो करना है वह करना, इस तरह पागलपन है। :) – railsdog

+0

आप किसी भी नए नल को अस्वीकार करने के लिए एक सम्मिलित/अद्यतन ट्रिगर हो सकता है। लेकिन कुल मिलाकर, यह एक बुरा विचार की तरह लगता है। – Thilo

+0

बिल्कुल पागल नहीं है। मैंने इसे सिस्टम में अवसर पर उपयोग किया है जहां वे मौजूदा (पुराने) डेटा रखना चाहते थे, लेकिन किसी भी नए (या अपडेटेड) डेटा के लिए बाधा जांचना शुरू कर दिया। –

उत्तर

35

आप एक अप्रत्याशित बाधा जोड़ सकते हैं - यह मौजूदा पंक्तियों को नहीं देखेगा, लेकिन यह किसी भी नई या अद्यतन पंक्तियों के लिए जांच की जाएगी।

ALTER TABLE mytable MODIFY mycolumn NOT NULL NOVALIDATE; 

बस जागरूक रहें कि आप मौजूदा पंक्ति को अपडेट नहीं कर पाएंगे जब तक कि यह बाधा को पूरा न करे।

इसके अलावा, नकारात्मकता से अवगत रहें कि अनुकूलक अपनी योजना बनाने में इस बाधा का लाभ नहीं उठा पाएगा - इसे यह मानना ​​है कि कुछ पंक्तियों में अभी भी शून्य हो सकती है।

+0

क्या आप आगे के संदर्भ के लिए कुछ बाहरी लिंक प्रदान कर सकते हैं? धन्यवाद! – Rachcha

+1

आप किसके बाद विशेष रूप से हैं? डॉक्स: http://docs.oracle.com/cd/E11882_01/server.112/e41084/clauses002.htm#i1002273 –

-1

ALTER तालिका तालिका_नाम एसईटी कॉलम_नाम = '0' जहां कॉलम_नाम शून्य है;

वैकल्पिक तालिका तालिका_नाम संशोधित कॉलम (स्तंभ_नाम NUMBER CONSTRAINT बाधा_ पहचानकर्ता न्यूल);

यह निश्चित रूप से यह मानते हुए है कि आपका कॉलम एक नंबर है लेकिन यह वास्तव में वही बात है, आप केवल '0' को एक डिफ़ॉल्ट मान में बदल देंगे जो शून्य नहीं है।

0

हमाद: मैं समस्या का सामना और निम्नलिखित की तरह का समाधान:

ऑल्टर तालिका THR_EM_DESIGNATION_ID संशोधित thr_empl_info नहीं अशक्त

संबंधित मुद्दे