前缀密钥MySQL不正确

时间:2015-12-04 18:51:02

标签: php mysql ubuntu mariadb

我在使用phpmyadmin创建表时遇到问题,这会给我以下错误:

  

#1089 - 前缀键不正确;使用过的关键部分不是字符串,使用的长度比关键部分长,或者存储引擎不支持唯一的前缀键

这是我的查询:

d

在ubuntu minimal中使用MariaDB。

3 个答案:

答案 0 :(得分:6)

问题是:

PRIMARY KEY (`id`(7))

您不能将数字的部分用作键,您必须使用整个事物。此外,指定数字类型的长度最多也是无用的,最坏的情况是破坏性的。

更改为:

PRIMARY KEY (`id`)

答案 1 :(得分:1)

主键语法不是我以前见过的。试试这个:

CREATE TABLE `b2b`.`users` (
 `id` BIGINT NOT NULL AUTO_INCREMENT PRIMARY KEY,
   ....
) ENGINE = InnoDB;

或者如果你想要

CREATE TABLE `b2b`.`users` (
 `id` BIGINT NOT NULL AUTO_INCREMENT,
   ....
 PRIMARY KEY (id) 
) ENGINE = InnoDB;

答案 2 :(得分:0)

你的sql中有几个错误,所以试着找到与这个sql的区别

 CREATE TABLE  `b2b`.`users` ( `id` INT(7) NOT NULL AUTO_INCREMENT ,
 `name` VARCHAR(30) NOT NULL ,
 `surnames` VARCHAR(80) NOT NULL ,
 `birthdate` DATE NOT NULL ,
 `drivingdoc` VARCHAR(20) NOT NULL ,
 `acdate` DATE NOT NULL ,
 `countrydoc` VARCHAR(20) NOT NULL ,
 `province` VARCHAR(20) NOT NULL ,
 `locality` VARCHAR(35) NOT NULL ,
 `address` VARCHAR(150) NOT NULL ,
 `number` VARCHAR(20) NOT NULL ,
 `flat` VARCHAR(20) NOT NULL ,
 `door` VARCHAR(20) NOT NULL ,
 `description` VARCHAR(255) NOT NULL ,
 PRIMARY KEY (`id`)) ENGINE = InnoDB;