2009-08-24 10 views
7

क्या किसी अन्य तालिका में एक विदेशी कुंजी के रूप में एक अद्वितीय बाधा स्थापित करना संभव है? यदि हां, तो आप इसे घोषित करने के बारे में कैसे जाएंगे?क्या किसी अन्य तालिका में एक विदेशी कुंजी के रूप में एक अद्वितीय बाधा स्थापित करना संभव है?

आप उम्मीदवार कुंजी असाइन करने के बारे में कैसे जाएंगे? क्या यह संभव है?

उदाहरण: मैं एक उत्पाद तालिका के होते हैं:

prod_id, prod_name, prod_price, QOH 

मैं कहां से prod_name प्रेषण तालिका लिंक करना चाहते हैं:

desp_id, prod_name, shelfLoc, quantity 

क्या मैं सोच रहा था कि मैं आवश्यकता हो सकती है है एक अद्वितीय बाधा उत्पन्न करने के लिए जो इस तरह दिखेगा:

ALTER TABLE product 
ADD CONSTRAINT prod_nameID_uc 
UNIQUE (prod_id,prod_name) 

जो मैं सोच रहा हूं वह है, अगर प्रेषण तालिका में एक विदेशी कुंजी के रूप में एक अद्वितीय कुंजी का उल्लेख करना संभव है। मुझे प्रेषण तालिका में prod_id के बजाय prod_name होना चाहिए ताकि उपयोगकर्ता आईडी को देखने के बजाए इसे पढ़ने के दौरान जानकारी अधिक अर्थपूर्ण हो। मैं ओरेकल पर iSQL प्लस का उपयोग कर रहा हूं।

+0

क्या आप इसका मतलब बता सकते हैं? आपके पास 'tableB' में एक कॉलम है जो 'अनन्य' दोनों होना चाहिए और' tableA' पर 'विदेशी कुंजी' होना चाहिए? इसके अलावा, आप किस डेटाबेस इंजन का उपयोग कर रहे हैं? – VoteyDisciple

उत्तर

2

यह आवश्यक रूप से डीबीएमएस निर्भर है। डीबीएमएस में मैं परिचित हूं, अद्वितीय बाधा और विदेशी कुंजी बाधा अलग विचार हैं, आप दोनों हो सकते हैं, और वे संयुक्त होने पर सामान्य रूप से कार्य करते हैं।

6

यह एक Oracle विदेशी कुंजी में एक अद्वितीय बाधा संदर्भित करने के लिए पूरी तरह से संभव है:

SQL> create table products (
    2  prod_id number not null 
    3  , prod_name varchar2 (30) not null 
    4  , constraint prod_pk primary key (prod_id) 
    5  , constraint prod_uk unique (prod_name) 
    6  ) 
    7/

Table created. 

SQL> create table despatch (
    2  desp_id number not null 
    3  , prod_name 
    4  , constraint desp_pk primary key (desp_id) 
    5  , constraint desp_prod_pk foreign key (prod_name) 
    6   references products (prod_name) 
    7  ) 
    8/

Table created. 

SQL> 

हालांकि यह बुरा व्यवहार है। एक अद्वितीय कुंजी के साथ प्राथमिक कुंजी का उपयोग करने का मुख्य कारण विदेशी कुंजी में उपयोग के लिए सिंथेटिक कुंजी प्रदान करना है। मैं आप थे मैं चिंतित हूं कि आपके शिक्षक आपको assignment riddled with bad practice दे रहे हैं।

+0

ओह मेरा विश्वास करो, मैं पूरी तरह से सहमत हूं। उन्होंने हमें आधा सामान भी नहीं सिखाया है कि वे हमें असाइनमेंट के भीतर निष्पादित करने की उम्मीद करते हैं। स्लैक। – taksIV

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