मैं अपने डेटाबेस में बाधाओं को बदल रहा हूं और मुझे उनमें से कुछ को छोड़ने की जरूरत है। मुझे पता है कि एक बाधा के लिए, आदेश निम्न है:

ALTER TABLE tblApplication DROP CONSTRAINT constraint1_name;

हालाँकि, जब मैं कोशिश करता हूँ

ALTER TABLE tblApplication DROP (
  CONSTRAINT constraint1_name,
  CONSTRAINT constraint2_name,
  CONSTRAINT constraint3_name
);

यह काम नहीं करता है और मुझे यह करने की ज़रूरत है:

ALTER TABLE tblApplication DROP CONSTRAINT constraint1_name;
ALTER TABLE tblApplication DROP CONSTRAINT constraint2_name;
ALTER TABLE tblApplication DROP CONSTRAINT constraint3_name;

क्या एक कमांड में एक से अधिक बाधाओं को दूर करने का कोई तरीका है? मैं ALTER TABLE tblApplication को दोहराने से बचना चाहता हूं, ठीक उसी तरह जैसे ADD कमांड के साथ होता है:

ALTER TABLE tblApplication ADD (
  CONSTRAINT contraint1_name FOREIGN KEY ... ENABLE,
  CONSTRAINT contraint2_name FOREIGN KEY ... ENABLE,
  CONSTRAINT contraint3_name FOREIGN KEY ... ENABLE
);
13
John Manak 2 मई 2011, 19:35
अपने ऐड उदाहरण में आपने कोष्ठक के बजाय घुंघराले ब्रेसिज़ का उपयोग किया है।
 – 
climmunk
25 मई 2012, 23:15

3 जवाब

सबसे बढ़िया उत्तर

हाँ तुम कर सकते हो। आपको प्रति बाधा 'ड्रॉप बाधा' दोहराने की जरूरत है। जैसे

alter table t1
drop constraint fk1
drop constraint fk2
/

संपादित करें: मैंने Oracle 11 के विरुद्ध इसका परीक्षण किया, और इसने ठीक काम किया। पुराने संस्करणों के बारे में नहीं जानते।

26
Sodved 2 मई 2011, 19:41
निष्पक्ष होने के लिए, ALTER TABLE पर Oracle प्रलेखन काफी कठिन पढ़ा जाता है। मुझे एक वाक्य खोजने में थोड़ा समय लगा, जिसमें कहा गया है कि कई ड्रॉप क्लॉज की अनुमति है। सिंटैक्स आरेख इसे बिल्कुल स्पष्ट नहीं करता है, और कोई यह मामला बना सकता है कि यह इसकी अनुमति नहीं देता है।
 – 
DCookie
3 मई 2011, 05:19
धन्यवाद, यही वह है जिसे मैं ढूंढ रहा था।
 – 
John Manak
3 मई 2011, 11:29

तालिका में कॉलम से संबंधित बाधाओं को छोड़ने का एक वैकल्पिक रूप है, कॉलम को कैस्केड के साथ छोड़ना भी है:

ALTER TABLE table1 DROP (columnName) CASCADE CONSTRAINTS;

इसका परीक्षण Oracle 11g . पर किया जाता है

1
Jordi M. 4 मई 2016, 22:54

हां, हम एक साथ कई ड्रॉप कर सकते हैं:

ALTER TABLE TABLE NAME
DROP CONSTRAINTS CONSTRAINT VALUE
DROP CONSTRAINTS CONSTRAINT VALUE;
0
Chris 6 सितंबर 2021, 19:53
स्टैक ओवरफ्लो में आपका स्वागत है। कृपया दौरेलें, पढ़ें कैसे करें उत्तर और चिल्लाओ मत।
 – 
Chris
6 सितंबर 2021, 19:52