mysql - 我的 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 错误,无法弄清楚我做错了什么。

最佳答案

在您的主键定义中,您使用了 (id(11)) ,它定义了一个前缀键 - 即前 11 个字符仅应用于创建索引。前缀键仅对 CHAR 有效, VARCHAR , BINARYVARBINARY类型和您的id字段是 int ,因此错误。

使用 PRIMARY KEY (id)相反,你应该没事。

MySQL 引用 here并阅读第 4 段。

https://stackoverflow.com/questions/28932281/

相关文章:

java - 在 Java 中处理 MySQL 日期时间和时间戳

mysql - 如何在 phpMyAdmin 中显示 UTF-8 字符?

mysql - 如何处理 mysqldump 创建的巨大行长

mysql - SQL 按计数排序

mysql - 如何更改超过 1 列的表列数据类型?

mysql - 将表从 Amazon RDS 导出到 CSV 文件

mysql - SQL:在 MySQL 中将现有列设置为主键

mysql - 如何重新排列 MySQL 列?

mysql - 获取不带表格格式的SQL查询结果

mysql - 删除匹配行的更快方法?