我的SQL怎么了? #1089-前缀密钥不正确 [英] What is wrong with my SQL here? #1089 - Incorrect prefix key

查看:210
本文介绍了我的SQL怎么了? #1089-前缀密钥不正确的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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个字符应用于创建索引.前缀键仅对CHARVARCHARBINARYVARBINARY类型有效,并且您的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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆