我的SQL怎么了? #1089-前缀密钥不正确 [英] What is wrong with my SQL here? #1089 - Incorrect prefix key
问题描述
CREATE TABLE `table`.`users` (
`id` INT(11) NOT NULL AUTO_INCREMENT,
`username` VARCHAR(50) NOT NULL,
`password` VARCHAR(50) NOT NULL,
`dir` VARCHAR(100) NOT NULL,
PRIMARY KEY (`id`(11))
) ENGINE = MyISAM;
我遇到了#1089 - Incorrect prefix key
错误,无法弄清楚我在做什么错.请帮忙!
I'm getting the #1089 - Incorrect prefix key
error and can't figure out what I'm doing wrong. Help, please!
推荐答案
在您的PRIMARY KEY定义中,您使用了(id(11))
,它定义了一个前缀键-即,仅前11个字符应用于创建索引.前缀键仅对CHAR
,VARCHAR
,BINARY
和VARBINARY
类型有效,并且您的id
字段是int
,因此会出现错误.
In your PRIMARY KEY definition you've used (id(11))
, which defines a prefix key - i.e. the first 11 characters only should be used to create an index. Prefix keys are only valid for CHAR
, VARCHAR
, BINARY
and VARBINARY
types and your id
field is an int
, hence the error.
使用PRIMARY KEY (id)
代替,您应该没事.
Use PRIMARY KEY (id)
instead and you should be fine.
MySQL参考此处,并阅读第4段.
MySQL reference here and read from paragraph 4.
这篇关于我的SQL怎么了? #1089-前缀密钥不正确的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!