mySQL查询中的语法错误是什么?

时间:2018-03-28 05:50:09

标签: mysql sql

CREATE TABLE IF NOT EXISTS `creditors` (
    `id` int(10) NOT NULL AUTO_INCREMENT PRIMARY KEY,
    `name` varchar(50) NOT NULL,
    `route` varchar(255) NOT NULL,
    `mobile` int(10) NOT NULL,
    `credit_amount` double(100) NOT NULL,
    `start_date` date NOT NULL,
    `due_date` date NOT NULL,
    UNIQUE KEY `idUnique` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1

MySQL说:文档

  

#1064 - 您的SQL语法出错;检查手册   对应于您的MariaDB服务器版本,以获得正确的语法   靠近')NOT NULL,        start_date日期非空,        due_date日期非空,'在第6行

此SQL查询中的语法错误是什么?

3 个答案:

答案 0 :(得分:0)

如果将列设置为primary key,则它仅包含唯一值。那你为什么试着和UNIQUE KEY做同样的事呢?

并删除RANGE的{​​{1}}。

SQLFiddle Example

Double

答案 1 :(得分:0)

错误在于此声明:

`credit_amount` double(100) NOT NULL

在双数据类型中100之后给出精度。

解决方案:

 `credit_amount` double(100,0) NOT NULL

0后给出小数点后的位数,而不是100

答案 2 :(得分:0)

如果您想使用double,则必须同时指定MD M是总数字位数,其中D位数可能位于小数点后,即double(10,0)。否则请使用允许float等语法的float(10)

此外,除非您真正从中受益,否则请勿使用latin1字符集,而应使用UTF-8