2012-03-15 9 views
47

में प्राथमिक और विदेशी कुंजी मुझे आश्चर्य हो रहा था कि क्या कुछ मुझे pgAdmin में प्राथमिक और विदेशी कुंजी को असाइन करने के बारे में एक स्पष्टीकरण दे सकते हैं?pgAdmin

मुझे ऑनलाइन कोई जानकारी नहीं मिल रही है।

उदाहरण के लिए ... मुझे अपने सभी विवरण (पता, डीओबी और आदि) के साथ छात्र तालिका मिली है। मैं टेबल पर student_number जोड़ने जा रहा हूं और इसे प्राथमिक कुंजी बनाउंगा।

मैं सिर्फ यह जानना चाहता हूं कि मैं pgAdmin का उपयोग करके ऐसा कैसे करूं? और यदि आप समझाने के लिए दयालु हो सकते हैं तो मुझे postgreSQL (और pgAdmin) में प्राथमिक कुंजी का उपयोग करने के बारे में और जानकारी दें। विदेशी कुंजी के साथ एक ही मामला।

+0

कोई भी मदद महान होगी। :) –

उत्तर

20

किसी मौजूदा तालिका में कॉलम जोड़ने के लिए pgAdmin में कोई विकल्प नहीं है और इसे एक ही समय में प्राथमिक कुंजी बनाते हैं, क्योंकि यह शायद ही संभव है।

प्राथमिक कुंजी कॉलम को अद्वितीय गैर-शून्य मान रखने की आवश्यकता है। किसी मौजूदा तालिका में कॉलम जोड़ने पर, इसमें नल मान होते हैं। इससे पहले कि आप UNIQUE या PRIMARY KEY बाधा जोड़ सकें, आपको अद्वितीय मान दर्ज करना होगा।

उस नियम में अपवाद है, हालांकि: यदि आप serial कॉलम जोड़ते हैं, तो अद्वितीय मान स्वचालित रूप से डाले जाते हैं। इस मामले में, आप भी यह प्राथमिक कुंजी परिभाषित कर सकते हैं तुरंत:

ALTER TABLE student ADD COLUMN student_number serial PRIMARY KEY; 

यह PostgreSQL 9.1 में काम करता है। मुझे यकीन नहीं है कि यह पुराने संस्करणों में भी करता है।

pgAdmin इस समय "संस्करण 1.14) में" नया कॉलम ... "संवाद में serial कॉलम के लिए इस विशेष मामले को शामिल नहीं करता है।

+0

जानकारी Erwin के लिए धन्यवाद। –

+1

विक्टर बैरेंट्स का जवाब देखें, ऐसा लगता है कि श्री थेथ ने pgadmin की खोज की है, इसलिए आपके उत्तर में बहुत परिचित होने के बावजूद आप यहां वर्णित परिदृश्य में कुछ मौका देते हैं। –

95

हां, प्राथमिक & पीजीएडमिन में विदेशी कुंजी जोड़ने का एक तरीका है।

pgAdmin तृतीय Ver.1.16.1 (विंडोज 7) Ctrl में

  1. तालिका का चयन करें आप
  2. चाहते परीक्षण + Alt + गुण
  3. दर्ज करें या राइट क्लिक करें/
  4. "बाधाएं" टैब का चयन करें
  5. फ़ॉर्म के बाईं तरफ आपको "प्राथमिक कुंजी" विकल्प दिखाई देगा
  6. क्लिक करें
  7. करें "कॉलम" टैब
  8. जोड़ने स्तंभ आप के रूप में एक महत्वपूर्ण
  9. क्लिक करें चाहते हैं जोड़ने

और आप पूरी तरह से तैयार कर रहे हैं।

यदि आप चाहें तो अधिक चीज़ें भर सकते हैं, लेकिन अब आप जानते हैं कि वहां कैसे जाना है।

+0

क्या यह तालिका में स्वयं की कुंजी जोड़ता है, या बस वर्चुअल रूप से PGadmin में? यदि यह पूर्व है, तो क्या आपके ऐप में चीज़ें टूट नहीं जाएंगी? यह विधि एक बाधा जोड़ती है, कॉलम नहीं, तो क्या यह सुरक्षित है? – ahnbizcad

+3

दोबारा पढ़ें 6. और 7. (तालिका में कॉलम पहले से मौजूद है) –

+0

यह अच्छी तरह से काम करता है – docesam

0

एसक्यूएल नीचे काम करेंगे

SELECT 
    tc.constraint_name, tc.table_name, kcu.column_name, 
    ccu.table_name AS foreign_table_name, 
    ccu.column_name AS foreign_column_name 
FROM 
    information_schema.table_constraints AS tc 
    JOIN information_schema.key_column_usage AS kcu 
     ON tc.constraint_name = kcu.constraint_name 
    JOIN information_schema.constraint_column_usage AS ccu 
     ON ccu.constraint_name = tc.constraint_name 
WHERE constraint_type = 'PRIMARY KEY' AND tc.table_name='table_name'; 
0

Pgadmin3 में, जो आप पी या FK और दाएँ क्लिक जोड़ सकते हैं और गुण का चयन करना चाहते मेज पर

  1. जाओ।
  2. बाधाओं टैब पर जाएं।
  3. जोड़ें बटन के बगल में ड्रॉप डाउन सूची में प्राथमिक कुंजी या विदेशी कुंजी चुनें।
  4. और ऐड बटन पर क्लिक करने के बजाय।
  5. कॉलम टैब पर जाएं।
  6. ड्रॉप डाउन सूची में कॉलम नाम चुनें, जिसे आप जोड़ना चाहते हैं।
  7. जोड़ें बटन क्लिक करें।
  8. ठीक बटन क्लिक करें।

    आशा है कि यह आपके लिए सहायक होगा!

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