3

私は使用しています:

PRIMARY KEY (id), UNIQUE id (id), KEY id_2 (id)

KEY id_2 (id)テーブルを作成するときはいつでも、何をするのか、なぜなのかわかりません。

私はどこでも検索しましたが、適切な答えを見つけることができません。ありがとう!

4

4 に答える 4

3

あなたの例に基づいて、1つの列に3つの異なるインデックスを作成していると思います...これはおそらくあなたが意図していたことではありません。

まず、主キーを作成します。

PRIMARY KEY (id)

次に、一意のインデックスを作成します。これは、すでに主キーを持っているため、必要ありません...そして、この一意のインデックスに名前を付けますid

UNIQUE id (id)

最後に、次の名前の3番目のインデックスを作成しますid_2

KEY id_2 (id)

代わりに、主キーだけを作成し、他の2つのインデックスは使用しないでください。

于 2013-02-13T19:25:56.537 に答える
1

この質問から:ほとんどのSQLデータベースで同じインデックスを2回定義できるのはなぜですか?

KEY構文により、そのキー列の名前付きインデックスを作成できるようになります。はそのid_2名前です。関連する質問でわかるように、これを複数回指定できます。

CREATE TABLE `testkey` (
  `id` varchar(10) NOT NULL,
  PRIMARY KEY (`id`),
  KEY `id` (`id`),
  KEY `id_2` (`id`)
)
于 2013-02-13T19:24:13.283 に答える
0

それはあなたのインデックスの名前です。id列にid_2というインデックスを作成しています

于 2013-02-13T19:24:32.457 に答える
0

idと呼ばれる列にインデックスを作成しますid_2

MySQL CREATE TABLEステートメントのドキュメントから:

CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name
    { LIKE old_tbl_name | (LIKE old_tbl_name) }

create_definition:
    col_name column_definition   | [CONSTRAINT [symbol]] PRIMARY KEY [index_type] (index_col_name,...)
      [index_option] ...   | {INDEX|KEY} [index_name] [index_type] (index_col_name,...)
      [index_option] ...

つまり、KEYはの同義語ですINDEX

于 2013-02-13T19:25:09.787 に答える