2011-04-15 71 views
1

我'新MySQL的,我想知道什麼KEY(不主鍵)是指在下面的查詢:創建表的MySQL

CREATE TABLE `users` (
    `id` int(11) NOT NULL auto_increment, 
    `name` varchar(255) NOT NULL default '', 
    `username` varchar(150) NOT NULL default '', 
    `email` varchar(100) NOT NULL default '', 
    `password` varchar(100) NOT NULL default '', 
    `activation` varchar(100) NOT NULL default '', 
    PRIMARY KEY (`id`), 
    KEY `idx_name` (`name`), 
    KEY `username` (`username`), 
    KEY `email` (`email`) 
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=65 ; 

也是此行ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=65 ;

回答

3

KEY是一個索引:它就像一個庫索引:更快地找到該列的值。你想要這個加入和搜索。

意味着您使用的引擎(這是默認值)。例如,如果您需要外鍵,那麼您可能需要InnoDB。

DEFAULT CHARSET=utf8 

是缺省字符集。

AUTO_INCREMENT=65 ; 

意味着目前的自動遞增值是在65

+0

@ BOBJ-C:_「是指當前的自動遞增值是在65」 _所以下次你插入使用密鑰NULL的記錄,新指數將66. – Marco 2011-04-15 08:19:58

+0

如何讓兩個字段獨一無二。 – 2013-12-11 12:24:19

+0

如果還有其他問題,請點擊[提問](http://stackoverflow.com/questions/ask)按鈕。 – Nanne 2013-12-11 12:56:16

0

KEY通常是INDEX的同義詞。

ENGINE=MyISAM 

它意味着您的表的存儲引擎。 MySQL中有兩種類型的存儲引擎:事務性和非事務性。默認引擎是MySQL 5.5.5以前的InnoDB(5.5.5之前的MyISAM)。

DEFAULT CHARSET=utf8 

字符集支持,使您能夠使用各種字符集來存儲數據。

AUTO_INCREMENT=65 

這意味着當前主鍵id的auto_increment值爲65。

的更多信息: - https://dev.mysql.com/doc/refman/5.7/en/create-table.html