我的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一个索引。 前缀键只对CHAR
, VARCHAR
, BINARY
和VARBINARY
types有效,你的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的错误将来你永远不会面对。 谢谢😊