2017-02-12 9 views
-1

Я пытаюсь использовать db, чтобы связать его с моим проектом java , и я использую wampsarver для создания db. Что мне делать, чтобы исправить это, пожалуйста.CREATE TABLE в ошибке синтаксиса MySQL

1064 - У вас возникла ошибка в синтаксисе SQL; проверьте руководство, которое соответствует версии сервера MySQL для правильного синтаксиса, чтобы использовать вблизи ') NOT NULL, Phone DOUBLE (20) NOT NULL, Id INT (20) NOT NULL AUTO_INCR' в строке 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 как парный не могут быть представлены точно и создает проблемы при выполнении сравнений.