我的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错误,不能找出我做错了什么。 请帮助!

在你使用的PRIMARY KEY定义中(id(11)) ,它定义了一个前缀关键字,即前11个字符只能用来创build一个索引。 前缀键只对CHARVARCHARBINARYVARBINARYtypes有效,你的id字段是一个int ,因此是错误。

使用PRIMARY KEY (id)来代替,你应该没问题。

在这里引用MySQL并从第4段中读取。

如果你正在使用一个graphics用户界面,你仍然遇到同样的问题。 只需保持大小值为空,主键默认值为11,你应该罚款这个。 与Bitnami phpmyadmin一起工作。

这个

PRIMARY KEY( id (11))

由phpmyadmin自动生成,改为

PRIMARY KEY( id

 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; 

改成

 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`) ) ENGINE = MyISAM; 

有一个简单的方法来做到这一点。 这可能不是专家的答案,它可能不适用于每个人,但它为我做了。

取消选中所有的主要和独特的checkbox,突出创build一个普通的简单表。

当phpmyadmin(或其他)向您显示表结构时,按给定button使列成为主键。

然后点击更改并编辑该设置或其他colums像“独特”等

在phpMyAdmin中,我的问题是一样的。 我刚刚创build了一个没有任何const的表。 后来我修改了ID为主键。 然后我将ID更改为Auto-inc。 这解决了这个问题。

 ALTER TABLE `users` CHANGE `ID` `ID` INT(11) NOT NULL AUTO_INCREMENT; 

这个对我有用:

 CREATE TABLE `users`( `user_id` INT(10) NOT NULL AUTO_INCREMENT, `username` VARCHAR(255) NOT NULL, `password` VARCHAR(255) NOT NULL, PRIMARY KEY (`user_id`) ) ENGINE = MyISAM; 

根据最新版本的MySQL(phpMyAdmin),在select主键时添加一个正确的INDEX。 例如:id [int] INDEX 0,如果id是您的主键和第一个索引。 要么,


对于你的问题尝试这一个

 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`) ) ENGINE = MyISAM; 

我也有这个相同的问题。
解决scheme为我工作:

 CREATE TABLE IF NOT EXISTS`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(`sr_no`)
 )ENGINE = InnoDB DEFAULT CHARSET = latin1 AUTO_INCREMENT = 3;

我将这个代码粘贴到SQL中并运行,它工作正常。

当你把id作为主键的时候,popup窗口就会出现,这些主键让你知道这个主键的大小。 所以你只需要保留空白,因为默认情况下int值已经设置了11.点击ok就popup那些没有input数字的popup窗口。 在这种types的错误将来你永远不会面对。 谢谢😊