我一直在phpmyadmin中遇到1064个错误



我正在尝试使用以下

在phpmyadmin中创建一个表格
SQL : 
CREATE TABLE `umOrder`.`Bill` (
    `Id` INT(5) NOT NULL AUTO_INCREMENT ,
    `userID` VARCHAR(255) NOT NULL ,
    `product` VARCHAR(255) NOT NULL ,
    `quantity` INT(3) NOT NULL ,
    `price` DOUBLE(5) NOT NULL , 
    `date` VARCHAR(255) NOT NULL ,
    PRIMARY KEY (`Id`(5))
  ) ENGINE = MEMORY;

但是继续遇到此错误:

1064-您的SQL语法有错误;检查与您的MariaDB服务器版本相对应的手册,以了解要使用的正确语法')而不是null,date VARCHAR(255)NOT NULL,主键(Id(5)))引擎='在第1行1>

我不太了解错误的含义?有什么想法吗?

key(id(5))是可疑的。但是您也有另一个错误:double不需要长度参数。

以下应有作用:

CREATE TABLE `Bill` (
    `Id` INT(5) NOT NULL AUTO_INCREMENT ,
    `userID` VARCHAR(255) NOT NULL ,
    `product` VARCHAR(255) NOT NULL ,
    `quantity` INT(3) NOT NULL ,
    `price` DOUBLE NOT NULL , 
    `date` VARCHAR(255) NOT NULL ,
    PRIMARY KEY (`Id`)
  ) ENGINE = MEMORY;

这是一个SQL小提琴。

注意:我认为在数字类型(decimal/ numeric)之外进行长度参数是没有帮助的。您可能要考虑删除所有这些。

您需要为双重分配小数:

CREATE TABLE `umOrder`.`Bill` (
    `Id` INT (5) NOT NULL AUTO_INCREMENT,
    `userID` VARCHAR (255) NOT NULL,
    `product` VARCHAR (255) NOT NULL,
    `quantity` INT (3) NOT NULL,
    `price` DOUBLE (5,2) NOT NULL,
    `date` VARCHAR (255) NOT NULL,
    PRIMARY KEY (`Id`)
) ENGINE = MEMORY;

" double"不进行长度参数,就像戈登·林诺夫(Gordon Linoff)上面所说的那样。

我几乎遇到了完全相同的问题。

然后我摆脱了两倍的长度,现在一切都很好。