我在 phpmyadmin 中不断收到 1064 错误

I keep getting 1064 error in phpmyadmin

我正在尝试在 phpmyadmin 中使用以下内容创建 table

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 服务器版本对应的手册,了解在 ') NOT NULL , date VARCHAR(255) NOT NULL , PRIMARY KEY (Id(5))) ENGINE =' 附近使用的正确语法在第 1 行

我不太明白这个错误是什么意思?有什么想法吗?

key(id(5)) 可疑。但是你还有另一个错误:double doesn't take a length argument.

以下应该有效:

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;

Here 是 SQL Fiddle.

注意:我认为将长度参数放在数字类型之后没有帮助(除了 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 上面说的那样。

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

然后我去掉了 double 的长度,现在一切都很好。