Php 不正确的前缀键MySQL

Php 不正确的前缀键MySQL,php,mysql,ubuntu,mariadb,Php,Mysql,Ubuntu,Mariadb,我在使用phpmyadmin创建表时遇到问题,导致以下错误: #1089-前缀键不正确;使用的密钥部分不是字符串,使用的长度比密钥部分长,或者存储引擎不支持唯一前缀密钥 这是我所做的查询: CREATE TABLE `b2b`.`users` ( `id` BIGINT NOT NULL AUTO_INCREMENT , `name` VARCHAR(30) NOT NULL , `surnames` VARCHAR(80) NOT NULL , `birthdate` DATE NOT

我在使用phpmyadmin创建表时遇到问题,导致以下错误:

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

这是我所做的查询:

CREATE TABLE `b2b`.`users` ( `id` BIGINT 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(2000) NOT NULL ,
 PRIMARY KEY (`id`(7))) ENGINE = InnoDB;

在ubuntuminimal中使用MariaDB。

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

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;
问题是:

PRIMARY KEY (`id`(7))
你不能用数字的一部分作为键,你必须用整个数字。此外,为数字类型指定长度充其量是无用的,最坏的情况是有害的

改为:

PRIMARY KEY (`id`)

您的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;

在这种情况下,
(7)
基本上也是无用的。“试着找出差异”是没有帮助的。