我在 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 的长度,现在一切都很好。
我正在尝试在 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 的长度,现在一切都很好。