2012-04-29 1 views
4
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; 

:MySQL은 "KEY"키워드 라인 무엇

KEY `par_ind1` (`userID`) 

할을? (userID은 다른 테이블의 기본 키입니까?)

+0

[KEY 키워드의 의미는 무엇입니까?] (http://stackoverflow.com/questions/924265/what-does-the-key-keyword-mean) – edin1

답변

9

KEYINDEX의 동의어입니다. 이렇게하면 이미 sessionID과 공유하는 합성 키 이외에 userID 열에 par_ind1이라는 인덱스가 생성됩니다.

전체 자세한 내용은 MySQL CREATE TABLE 설명서를 참조하지만, 여기에 관련 부분은 다음과 같습니다 더 index_type이 지정되지 않았기 때문에, 기본이

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] ... 

을 사용한다. 테이블 스토리지 엔진에 따라 달라지는 기본 인덱스 유형은 CREATE INDEX reference을 참조하십시오. 이것과 같은 InnoDB 테이블의 경우, 인덱스는 BTREE이다.

3

이 열에 고유하지 않은 보조 인덱스가 만들어집니다. 이 문맥에서는 INDEXKEY을 서로 바꾸어 사용할 수 있습니다.