2012-11-06 14 views
55
परिवर्तन कैसे

एसक्यूएल बाधाबाधा

को बदलने के लिए कैसे नीचे मेरी बाधा

CONSTRAINT ACTIVEPROG_FKEY1 FOREIGN KEY(ActiveProgCode) REFERENCES PROGRAM(ActiveProgCode), 

की 1 मैं ऊपर बाधा को

ON DELETE CASCADE 

में जोड़ना चाहते हैं है।

मैं कैसे बदल है कि मौजूदा बाधा ACTIVEPROG_FKEY1 और जोड़ने

ON DELETE CASCADE 

ACTIVEPROG_FKEY1

में रोके पर विचार करें ACTIVEPROG_FKEY1 टेबल ACTIVEPROG

उत्तर

86

आप की कमी कभी नहीं बदल सकते हैं लेकिन आप उन्हें ड्रॉप और फिर पुन: कर सकते हैं।

इस

ALTER TABLE your_table DROP CONSTRAINT ACTIVEPROG_FKEY1; 

पर देखने के लिए और फिर इस

ALTER TABLE your_table 
add CONSTRAINT ACTIVEPROG_FKEY1 FOREIGN KEY(ActiveProgCode) REFERENCES PROGRAM(ActiveProgCode) 
    ON DELETE CASCADE; 

आशा की तरह ON DELETE CASCADE इस मदद

+0

आप बाधाओं को सक्षम/अक्षम कर सकते हैं। –

+0

@ फ्लोरिन गीता, हाँ हम सक्षम/अक्षम कर सकते हैं ............... कभी-कभी तालिका में एक या अधिक बाधाओं को अक्षम करने के लिए उपयोगी होता है, कुछ महत्वपूर्ण करें, और फिर कॉन्स्टेंट को फिर से सक्षम करें (एस) करने के बाद। यह थोक लोड ऑपरेशन के दौरान प्रदर्शन में सुधार करने के लिए अक्सर किया जाता है। – andy

6

वें नंबर पर है हम बाधा नहीं बदल सकते हैं, केवल एक ही चीज़ हम कर सकते हैं करने के लिए करें ड्रॉप करें और इसे फिर से बनाएं

ALTER TABLE [TABLENAME] DROP CONSTRAINT [CONSTRAINTNAME] 

विदेशी कुंजी बाधा

Alter Table Table1 Add Constraint [CONSTRAINTNAME] Foreign Key (Column) References Table2 (Column) On Update Cascade On Delete Cascade 

प्राथमिक कुंजी बाधा

Alter Table Table add constraint [Primary Key] Primary key(Column1,Column2,.....) 
+5

यह सच है कि क्या ओ पी चाहता है संभव नहीं है, लेकिन क्यों साथ इसे पुन: लो आप ओरेकल टैग किए गए प्रश्न के लिए SQL सर्वर साइट पर एक लिंक पोस्ट करते हैं? –

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