【问题标题】:#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '),#1064 - 您的 SQL 语法有错误;查看与您的 MariaDB 服务器版本相对应的手册,了解在 ') 附近使用的正确语法,
【发布时间】:2017-02-14 01:02:50
【问题描述】:
CREATE TABLE `NavigateNija`.`FUTA`(
  `Id` INT(255) NOT NULL AUTO_INCREMENT,
  `_RoadSideArea` CHAR(255)NOT NULL,
  `_Img` BLOB,
  `_Tamt` DOUBLE(10),
  `_MofT` CHAR(50),
  PRIMARY KEY(`Id`)
) ENGINE = InnoDB

MySQL 说:

文档 #1064 - 您的 SQL 语法有错误;检查与您的 MariaDB 服务器版本相对应的手册,以了解要使用的正确语法 靠近 '), `_MofT` CHAR(50), PRIMARY KEY(`Id`) ) ENGINE = InnoDB' 在第 5 行

【问题讨论】:

  • DOUBLE。看起来您必须指定两个数字(M 和 D)或不指定。也许您打算DOUBLE(10,0),但不清楚,显然产品不会猜测。
  • 很少使用DOUBLE。 DECIMAL 更常见(我怀疑在这种情况下更合适)

标签: mysql


【解决方案1】:

放弃 DOUBLE(10) 并选择 DOUBLE:

 CREATE TABLE `FUTA`(
  `Id` INT(255) NOT NULL AUTO_INCREMENT,
  `_RoadSideArea` CHAR(255)NOT NULL,
  `_Img` BLOB,
  `_Tamt` DOUBLE,
  `_MofT` CHAR(50),
  PRIMARY KEY(`Id`)
) ENGINE = InnoDB;

DOUBLE 数据类型不接受参数或接受两个参数(数字中允许存储的位数和小数点后允许的位数)。 Reference

【讨论】:

  • 或者,放弃DOUBLE,改用DECIMAL(m,n)。 IEEE 浮点类型具有存储大量值的优势,从令人麻木的 huge 值到无限小的 tiny 值。当我们存储预期范围内的值时(例如,从一美分到一万亿美元的美元金额,我们通常使用 DECIMAL 数据类型。
  • 是的,通常是更好的选择,除非我们为 NASA 工作
猜你喜欢
  • 2022-12-12
  • 2018-04-08
  • 1970-01-01
  • 1970-01-01
  • 2018-11-28
  • 2021-08-06
  • 1970-01-01
  • 2018-08-28
  • 2019-10-24
相关资源
最近更新 更多