2009-12-03 13 views
9

हैलो मैं अपनी तालिकाओं में से किसी एक में बाधाओं को प्रदर्शित करने की कोशिश कर रहा हूं लेकिन किसी कारण से मुझे कोई पंक्ति नहीं मिली है। नीचे दी गई तालिका है जो मैंने बनाई है।किसी तालिका में बाधाओं को प्रदर्शित करना

Create table Teams (
    TeamID varCHAR2(4) constraint Teams_TeamID_PK Primary Key, 
    TeamName VARCHAR2(40) 
); 

यह वह कोड है जिसका उपयोग मैं अपनी बाधाओं को दिखाने के लिए कर रहा हूं।

SELECT constraint_name, 
     constraint_type, 
     search_condition 
    FROM USER_CONSTRAINTS 
WHERE table_name = 'Teams'; 

मैं एक रूकी हूं इसलिए मैं यह सुनिश्चित करना चाहता हूं कि मैं समझता हूं कि क्या गलत है। मैंने तालिका को छोड़ने की कोशिश की है कि मेरी बाधाओं ने नहीं लिया - मैंने नहीं किया, और जब मैंने टेबल बनाया तो मुझे कोई त्रुटि नहीं मिली और मैं दूसरी तालिका में TeamID का संदर्भ दे रहा हूं। तो जब मैं टेबल छोड़ने की कोशिश करता हूं तो मुझे एक त्रुटि संदेश मिलता है जब मैं उम्मीद कर रहा था।

+0

आपकी समस्या मुझे प्रभावित करती है क्योंकि आप अलग-अलग उपयोगकर्ताओं के रूप में यह क्रियाएं कर रहे हैं और/या जब आप तालिका बनाते हैं तो लेनदेन नहीं कर रहे हैं। –

+0

तालिका बनाएं डीडीएल है जो ओरेकल में निष्पादन पर स्वत: काम करता है। – DCookie

+0

आप अन्य टेबलों द्वारा संदर्भित एक तालिका को नहीं छोड़ सकते हैं, जब तक कि आप "कैस्केड कन्स्ट्रेंट्स" निर्दिष्ट नहीं करते हैं, यानी "ड्रोप टेबल टीम कैस्केड कन्स्ट्रेंट्स" –

उत्तर

1
select dbms_mview.get_ddl('TABLE',USER,'TEAMS') from dual; 
18

इस प्रयास करें:

SELECT constraint_name, 
     constraint_type, 
     search_condition 
    FROM USER_CONSTRAINTS 
WHERE table_name = 'TEAMS'; 

जब तक डबल-कोटेड जब बनाया, ओरेकल में सभी वस्तु के नाम अपर केस हैं।

+0

काम करता है! अद्भुत ... –

1

आप केमलकेस नाम पसंद करते हैं, अपने बनाने तालिका स्क्रिप्ट किया जाना चाहिए था:

Create table "Teams" ( 
    "TeamID" varCHAR2(4) constraint "Teams_TeamID_PK" Primary Key, 
    "TeamName" VARCHAR2(40) 
); 

बिना डबल उद्धरण ओरेकल काम आते हुए :) अपरकेस में

1

उपयोग निम्न कोड सभी पहचानकर्ता धर्मान्तरित :

show create table table_name; 
+0

MySQL में काम करेगा लेकिन एमएस एसक्यूएल सर्वर और ओरेकल में नहीं। –

2

मैं व्यक्तिगत रूप से उपयोग करता हूं:

SELECT * FROM all_constraints WHERE Table_Name = <TableName>; 
0

एकल उद्धरण के भीतर where खंड में ऊपरी मामले में तालिका का नाम टाइप करें।

उदा। WHERE table_name = 'TEAMS';

+1

एसक्यूएल कीवर्ड केस असंवेदनशील हैं: http://stackoverflow.com/questions/153944/is-sql-syntax-case- संवेदनशील –

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