कुंजीशब्द का क्या अर्थ है?


141

इस MySQL टेबल परिभाषा में:

CREATE TABLE groups (
  ug_main_grp_id smallint NOT NULL default '0',
  ug_uid smallint  default NULL,
  ug_grp_id smallint  default NULL,
  KEY (ug_main_grp_id)
);

KEYकीवर्ड का क्या मतलब है? यह एक प्राथमिक कुंजी नहीं है, यह एक विदेशी कुंजी नहीं है, तो क्या यह सिर्फ एक सूचकांक है? यदि हां, तो इस प्रकार के सूचकांक के बारे में क्या खास है KEY?


1
ऐसा प्रतीत होता है जैसे "KEY" ऑपरेटर अब MySQL Server 5.5 में उपयोग में नहीं है। निश्चित नहीं है कि इसे कब हटाया गया था, लेकिन एक समस्या जो मैं इसके साथ आ रहा हूं वह 5.1 पर मौजूद है, लेकिन 5.5 नहीं।
तिरछा

जवाबों:


190

Http://dev.mysql.com/doc/refman/5.1/en/create-table.html से उद्धरण

{INDEX|KEY}

तो KEYएक है INDEX;)


9
संकेतन {INDEX | KEY} का सामान्य अर्थ यह नहीं है कि INDEX और KEY का एक ही अर्थ है, या KEY एक INDEX है?)
sergtk

1
@sergtk: MySQL मैनुअल में संकेतन के अनुसार, FOO | BAR का अर्थ है कि कीवर्ड FOO या कीवर्ड BAR का उपयोग किया जा सकता है। Id est, वे समानार्थक शब्द हैं।
३३ पर डैनचोवेन

4
बिल्कुल सही! MySql मैनुअल स्पष्ट करता है कि INDEX और KEY पर्यायवाची हैं - यही कारण है कि मैंने उत्तर को उत्कीर्ण किया। लेकिन इस जवाब से यह निष्कर्ष निकाला जा सकता है कि बीएनएफ नोटेशन {|} ने हमेशा इस मामले में ही नहीं, समानार्थक शब्दों का भी वर्णन किया है।
सर्गतक

3
यह सही नहीं है। मैं Quora में सबसे अच्छा जवाब है (देखें उपयोगकर्ता क्रिस्टियन Kohntopp) में पाया गया quora.com/... : कुंजी की कोई समस्या है, सूचकांक डेटा संरचना है कि बाधा को लागू करने के लिए आवश्यक है। व्यवहार में, यदि आपके पास उदाहरण के लिए एक एफके है KEY key_name (user_id), CONSTRAINT foreign_key_constraint_name FOREIGN KEY (user_id) REFERENCES auth_user (id)तो आप अतिरिक्त रूप से निर्दिष्ट कर सकते हैं कि INDEX का उपयोग क्या है (HASH बनाम BTREE)। यह उदाहरण दिखाता है कि KEY और INDEX समानार्थी नहीं हैं।
oneloop

4
किसी ने कभी यह नहीं बताया कि उस कीवर्ड का उपयोग क्या है, अगर वह अप्रचलित है या नहीं। अगर मेरे पास प्राथमिक कुंजी है, तो "कुंजी" भी क्यों है? दो इंडेक्स का क्या मतलब है? plz मुझे
बताएं

36

KEYसामान्य रूप से एक पर्यायवाची है INDEX। मुख्य विशेषता PRIMARY KEYको KEYकॉलम परिभाषा में दिए गए अनुसार ही निर्दिष्ट किया जा सकता है । यह अन्य डेटाबेस सिस्टम के साथ संगतता के लिए लागू किया गया था।

column_definition:
      data_type [NOT NULL | NULL] [DEFAULT default_value]
      [AUTO_INCREMENT] [UNIQUE [KEY] | [PRIMARY] KEY]
      ...

संदर्भ: http://dev.mysql.com/doc/refman/5.1/en/create-table.html

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.