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'
答案 0 :(得分: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` 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;
答案 1 :(得分:0)
您在double
specifier中缺少一个值:
`price` double(11) NOT NULL
它需要总位数和小数点后的位数。像这样:
`price` double(11,2) NOT NULL
尽管对于货币价值,您最好改用decimal
:
`price` decimal(11,2) NOT NULL
因为这使用了更固定的精度。使用double
可能会导致浮点算法的工作方式产生意外的计算结果。