2009-05-29 8 views
111

KEYキーワードは何を意味しますか?このテーブル定義で

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キーワードは何を意味するのでしょうか?それはプライマリキーではなく、foriegnキーではないので、単なるインデックスですか?もしそうなら、KEYで作成されたこのタイプのインデックスはとても特別でしょうか? http://dev.mysql.com/doc/refman/5.1/en/create-table.html

{INDEX|KEY} 

から引用

+1

"KEY" オペレータは、MySQL Server 5.5で使用されなくなったかのように、それは表示されません。削除されたときはわかりませんが、問題は5.1であり、5.5ではありません。 – slant

答えて

150

だからKEYは、INDEXである)

+6

表記法{INDEX | KEY}は一般的にINDEXとKEYの意味が同じか、KEYがINDEXであることを意味しません; – sergtk

+1

@sergtk:MySQLマニュアルの表記に従って、FOO | BARはキーワードFOOキーワードBARを使用することができます。彼らは同義語です。 – dotancohen

+3

まさに! MySqlマニュアルは、INDEXとKEYが同義語であることを明確にしています - これが私が答えをアップアップした理由です。しかし、BNF表記法{|}は、この場合だけでなく、常に同意語を記述したという答えから結論づけることができます。 – sergtk

28

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

関連する問題