2017-02-12 88 views
-1

我想使用数据库来链接它与我的Java项目 ,我使用wampsarver来创建数据库。 我该怎么做才能解决这个问题。CREATE TABLE在MySQL语法错误

1064 - 您的SQL语法错误;检查对应于你的MySQL服务器版本正确的语法使用 附近 'Phone DOUBLE(20)NOT NULL,Id INT(20)NOT NULL AUTO_INCR)NOT NULL' 手册第6行

CREATE TABLE `Laptop` (
`serial number ` INT(20) NOT NULL , 
`Device Model` VARCHAR(20) NOT NULL , 
`Device Manufacturer` VARCHAR(20) NOT NULL , 
`Device Color` VARCHAR(20) NOT NULL , 
`Screen size` DOUBLE(20) NOT NULL , 
`Phone` DOUBLE(20) NOT NULL , 
`Id` INT(20) NOT NULL AUTO_INCREMENT PRIMARY KEY , 
UNIQUE (
`serial number ` 
) 
) ENGINE = innodb 
+0

你真的是在把AUTO_INCREMENT主键的习惯表中的最后一列?通常情况下,这是第一个。 –

+0

不建议使用列名中的空格 – RiggsFolly

回答

1

双您有逗号的precision.Also后添加另一个数字没有空间name.the下面的脚本之后允许工作

CREATE TABLE `Laptop` (
`serial number` INT(20) NOT NULL , 
`Device Model` VARCHAR(20) NOT NULL , 
`Device Manufacturer` VARCHAR(20) NOT NULL , 
`Device Color` VARCHAR(20) NOT NULL , 
`Screen size` DOUBLE(20,4) NOT NULL , 
`Phone` DOUBLE(20,4) NOT NULL , 
`Id` INT(20) NOT NULL AUTO_INCREMENT PRIMARY KEY , 
    UNIQUE (
`serial number` 
) 
) ENGINE = innodb 
3

DOUBLE也需要精度(我给DOUBLE(20,2) - 根据需要更改它)。

再加上在serial number列名的末尾有一个杂散空间。

CREATE TABLE `Laptop` (
`serial number` INT(20) NOT NULL , 
`Device Model` VARCHAR(20) NOT NULL , 
`Device Manufacturer` VARCHAR(20) NOT NULL , 
`Device Color` VARCHAR(20) NOT NULL , 
`Screen size` DOUBLE(20,2) NOT NULL , 
`Phone` DOUBLE(20 ,2) NOT NULL , 
`Id` INT(20) NOT NULL AUTO_INCREMENT PRIMARY KEY , 
UNIQUE (
`serial number` 
) 
) 

此外,最好使用DECIMAL,而不是作为DOUBLE双打不能精确表示,虽然做的比较产生的问题。