ऑल्टर कंस्ट्रक्शन कैसे करें


91

एसक्यूएल बाधा को बदलने के लिए कैसे

नीचे मेरी बाधा 1 है

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

में जोड़ना चाहता हूँ

ON DELETE CASCADE

ऊपर से कसना।

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

ON DELETE CASCADE

बाधा डालने के लिए ACTIVEPROG_FKEY1

ACTIVEPROG_FKEY1 पर विचार करें तालिका ACTIVEPROG पर है

जवाबों:


146

आप कभी भी बाधाओं को नहीं बदल सकते हैं लेकिन आप उन्हें छोड़ सकते हैं और फिर से बना सकते हैं।

इस पर गौर करें

ALTER TABLE your_table DROP CONSTRAINT ACTIVEPROG_FKEY1;

और फिर इसे ON DELETE CASCADEइस तरह से फिर से बनाएं

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

उममीद है कि इससे मदद मिलेगी


आप बाधाओं को सक्षम / अक्षम कर सकते हैं।
फ्लोरिन घिता

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

12

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

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,.....)

6
यह सच है कि ओपी जो चाहता है वह संभव नहीं है, लेकिन आप ओरेकल को टैग करने वाले सवाल के लिए SQL सर्वर साइट पर एक लिंक क्यों पोस्ट करते हैं?
फ्रैंक श्मिट
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.