9
CREATE TABLE IF NOT EXISTS `scores` (
  `userID` int(11) NOT NULL,
  `sessionID` int(11) NOT NULL,
  `points` double NOT NULL DEFAULT '0',
  PRIMARY KEY (`userID`,`sessionID`),
  KEY `par_ind1` (`userID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

行は何ですか:

KEY `par_ind1` (`userID`)

行う?(userID別のテーブルの主キーですか?)

4

2 に答える 2

13

KEYの同義語ですINDEX。これにより、すでに共有している複合キーに加えてpar_ind1、列にontという名前のインデックスが作成されます。userIDsessionID

詳細については、MySQLCREATE 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] ...

  /* Key/Index creation */
  | {INDEX|KEY} [index_name] [index_type] (index_col_name,...)
      [index_option] ...

noindex_typeが指定されたため、デフォルトが使用されます。テーブルストレージエンジンによって異なるデフォルトのインデックスタイプについては、CREATE INDEXリファレンスを参照してください。このようなInnoDBテーブルの場合、これはBTREEインデックスです。

于 2012-04-29T14:36:49.297 に答える
3

この列に2番目の一意でないインデックスを作成します。このコンテキストではINDEX、交換可能に使用できます。KEY

于 2012-04-29T14:36:39.543 に答える