# 1064 - у вас ошибка в синтаксисе SQL;проверьте руководство, которое соответствует вашей MariaDB - PullRequest
0 голосов
/ 27 октября 2019
CREATE TABLE IF NOT EXISTS `tbl_product` (
    `id` int(11) NOT NULL AUTO_INCREMENT,
    `name` varchar(255) NOT NULL,
    `image` varchar(255) NOT NULL,
    `price` double(11) NOT NULL,
PRIMARY KEY (id)) 
ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1;

1064 - у вас ошибка в синтаксисе SQL;проверьте руководство, соответствующее вашей версии сервера MariaDB, чтобы найти правильный синтаксис для использования рядом с ') NOT NULL, PRIMARY KEY (id)) ENGINE = InnoDB DEFAULT CHARSET = latin1 AUTO_INCRE' в строке 5

Ответы [ 2 ]

1 голос
/ 27 октября 2019

попробуйте использовать число с плавающей запятой без номера отображаемой цифры

CREATE TABLE IF NOT EXISTS `tbl_product` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(255) NOT NULL,
  `image` varchar(255) NOT NULL,
  `price` double NOT NULL,
 PRIMARY KEY (id)) 
ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1;

, и для цены вам может потребоваться фиксированная десятичная длина, поэтому вы должны использовать десятичную

CREATE TABLE IF NOT EXISTS `tbl_product` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(255) NOT NULL,
`image` varchar(255) NOT NULL,
`price` decimal(10,2) NOT NULL,
PRIMARY KEY (id)) 
ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1;
0 голосов
/ 27 октября 2019

Вам не хватает значения в вашем double спецификаторе :

`price` double(11) NOT NULL

Требуются как общие цифры, так и цифры после десятичной дроби. Что-то вроде:

`price` double(11,2) NOT NULL

Хотя для валютных значений лучше использовать decimal вместо:

`price` decimal(11,2) NOT NULL

, так как при этом используется более фиксированная точность. Использование double может привести к неожиданным результатам вычислений из-за того, как работает арифметика с плавающей запятой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...