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

क्या मैं दो अलग-अलग तालिकाओं में एक ही विदेशी कुंजी बाधा का उपयोग कर सकता हूं?

कॉलम हैं और विदेशी कुंजी (एफके) हैं और बाधाएं हैं।

अन्य तालिकाओं पर ध्यान दिए बिना आप किसी तालिका में स्तंभ नाम रख सकते हैं।

एक एफके एक संदर्भ तालिका और कॉलम सेट और एक संदर्भित तालिका और कॉलम सेट है। सभी नाम मिलकर एक FK की पहचान करते हैं। यह एक डेटाबेस के बारे में एक वैचारिक बात है।

एक एफके बाधा, एक बाधा होने के नाते, एक ऐसी चीज है जिसका नाम डेटाबेस पर अद्वितीय होना चाहिए। यह एक संबद्ध एफके है और लागू करता है, अर्थात् इसकी घोषणा में वर्णित एक। एक ही FK को लागू करने वाली तालिका में आपके पास कई FK बाधाएं हो सकती हैं।

डीबीएमएस में एफके बाधाओं के लिए स्वचालित अद्वितीय नाम हैं। उदाहरण के लिए एक नाम भाग प्लस एक संख्या भाग जहां बाधा उस नाम के साथ तालिका का नंबरवां एफके बाधा है। आपके पास वास्तव में एक ही नामहीन FK बाधा परिभाषा पाठ एक तालिका में और कई तालिकाओं में कई बार हो सकता है, प्रत्येक एक अलग FK बाधा के लिए। (किसी दी गई तालिका के अंदर वाले समान FK को लागू करते हैं।)

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

भ्रामक रूप से, हम FK कहते हैं जब हमारा मतलब FK बाधा से होता है।

जब आप कहते हैं "यह दो अलग-अलग तालिकाओं में एक ही विदेशी कुंजी है," जो शब्दों का दुरुपयोग करता है। इसमें दो अलग-अलग FK शामिल हैं, और संबंधित FK बाधाएं हैं। आपका मतलब हो सकता है "यह वही संदर्भ कॉलम और संदर्भित तालिका और कॉलम दोनों एफके बाधाओं में है" या "यह वही पाठ है जो दोनों तालिका घोषणाओं में संदर्भित है 'एफके बाधा घोषणाएं"। लेकिन FK बाधा नाम अद्वितीय होना चाहिए।

जब आप कहते हैं "दोनों ही मामलों में यह एक आंतरिक उपयोगकर्ता को संदर्भित करता है," तो आप पुष्टि कर रहे हैं कि संदर्भित कॉलम का प्रकार और/या तालिका दोनों FK बाधाओं के लिए समान हैं। लेकिन वे अलग-अलग FK के लिए अलग-अलग FK बाधाएं हैं।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. त्रुटि 1064 (42000):आपको अपने SQL सिंटैक्स में त्रुटि है; उपयोगकर्ता होने के नाते पासवर्ड को रूट के रूप में कॉन्फ़िगर करना चाहते हैं

  2. COLLATION 'utf8_general_ci' CHARACTER SET 'latin1' के लिए मान्य नहीं है

  3. गणना करें कि अंतिम SQL क्वेरी से कितनी पंक्तियाँ सम्मिलित की गईं

  4. मैक पर Emacs और MySQL

  5. sql . में डेल्टा (वर्तमान और पिछली पंक्ति का अंतर) की गणना करें