PostgreSQL
 sql >> डेटाबेस >  >> RDS >> PostgreSQL

एकाधिक तालिकाओं पर अद्वितीय बाधा

आप निम्न कोशिश कर सकते हैं। आपको (id, aId) . पर एक अनावश्यक UNIQUE बाधा बनानी होगी माता-पिता में (एसक्यूएल बहुत गूंगा है ना?!)।

CREATE TABLE Child
(parentId INTEGER NOT NULL,
 aId INTEGER NOT NULL UNIQUE,
FOREIGN KEY (parentId,aId) REFERENCES Parent (id,aId),
createdOn TIMESTAMP NOT NULL);

संभवतः एक बेहतर समाधान यह होगा कि माता-पिता को चाइल्ड टेबल से पूरी तरह से हटा दिया जाए, bId जोड़ें इसके बजाय और केवल (aId, bId) . के आधार पर मूल तालिका का संदर्भ लें :

CREATE TABLE Child
(aId INTEGER NOT NULL UNIQUE,
 bId INTEGER NOT NULL,
FOREIGN KEY (aId,bId) REFERENCES Parent (aId,bId),
createdOn TIMESTAMP NOT NULL);

क्या ऐसा कोई कारण है कि आप ऐसा नहीं कर सकते?



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. एक जेसन फ़ील्ड में कैसे खोजें जिसमें वाक्पटु के साथ वस्तुओं की एक सरणी हो

  2. PostgreSQL में सभी डेटाबेस का सार्वजनिक स्कीमा क्यों है?

  3. त्रुटि:अभिव्यक्ति के रूप में उपयोग की जाने वाली सबक्वेरी द्वारा लौटाई गई एक से अधिक पंक्तियाँ

  4. अगली कड़ी का चयन करें और एक अन्य तालिका उपनाम शामिल करें

  5. एक सशर्त INSERT . से आईडी प्राप्त करें