首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >mySQL出现"DECIMAL“意外语法错误

问mySQL出现"DECIMAL“意外语法错误
EN

Stack Overflow用户
提问于 2015-05-15 07:41:04
回答 2查看 2.1K关注 0票数 0

这是我在mySQL上学习SQL的第五天。

我不明白为什么系统告诉我以下是一个错误。

我的代码是:

代码语言:javascript
复制
CREATE TABLE elements(
Name VARCHAR(20),
Symbol VARCHAR(2) PRIMARY KEY,
AtomicNumber TINYINT, 
AtomicMass DEC(4,2)     -- ending doesn't need ,  similar to SAS
);

INSERT INTO elements
VALUES ('Actinium','Ac',89,227);
-- here we want to modify the field type of the existing table because Aluminum has decimal #'s in mass

ALTER TABLE elements
MODIFY AtomicMass DECIMAL(9,3);  
-- Q:   I do not understand this why this is an syntax error.

系统消息:“语法错误:意外的'DECIMAL(decimal)'”它运行并更改字段约束,但错误消息仍然存在。

额外的问题(完全是菜鸟问题,请容忍我):如何在列的名称中加入“空格”?就像现在我用的是"AtomicNumber“,但我真的想要”原子数“。

谢谢!:)

EN

回答 2

Stack Overflow用户

发布于 2015-05-15 08:24:17

请咨询https://dev.mysql.com/doc/refman/5.6/en/alter-table.html。

您缺少COLUMN。

代码语言:javascript
复制
ALTER TABLE elements
MODIFY COLUMN `AtomicMass` DECIMAL(9,3); 
票数 0
EN

Stack Overflow用户

发布于 2015-05-15 08:30:19

MySQL数据类型的名称是DECIMAL,而不是DEC。因此,原始表定义语句应如下所示:

代码语言:javascript
复制
CREATE TABLE elements(
  Name VARCHAR(20),
  Symbol VARCHAR(2) PRIMARY KEY,
  AtomicNumber TINYINT, 
  AtomicMass DECIMAL(4,2)     -- ending doesn't need ,  similar to SAS
);

您的修改应如下所示:

代码语言:javascript
复制
ALTER TABLE elements
    CHANGE COLUMN AtomicMass AtomicMass DECIMAL(10,2)

但是,对于像原子量这样的值,您应该考虑使用FLOAT或DOUBLE而不是DECIMAL。精度的两位小数并不能很好地代表实际的科学事实。

最后,如果您想要将列名放在反引号中,如下所示

代码语言:javascript
复制
 `Atomic Mass`

无论你在哪里使用它们,你都可以在列名中加空格。但我怀疑,当你写代码时,这会让你抓狂。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30249244

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档