可以使用数字来命名MySQL表列吗​​?

时间:2011-11-02 03:11:15

标签: mysql ddl

我有一个包含25,50,100等列名的表。

当尝试更新表格时,无论我怎么做,我都会收到错误

UPDATE table SET '25'='100' WHERE id = '1'

我尝试过引用和回填所有方法但没有成功。

错误始终如下:

  

您的SQL语法有错误;查看与您的MySQL服务器版本对应的手册,以便在第1行''25'= 100 WHERE id = 1'附近使用正确的语法

如果我将列名更改为twentyfive - 我没有问题,但这不是我想要的。是否可以使用数字作为列名?

5 个答案:

答案 0 :(得分:42)

来自the docs

  

标识符可以以数字开头,但除非引用可能不仅仅由数字组成。

这意味着你必须用“25”之类的后标记引用它:

UPDATE table SET `25`='100' WHERE id='1'

答案 1 :(得分:4)

正如其他人所说,你可以反复勾选表格,列等的名称。只要确保你没有回复你的,否则它将它们解释为列名。因此,在您的示例中,只需要勾选25个:

UPDATE table SET `25`=100 WHERE id=1

答案 2 :(得分:1)

如果由于某种原因需要它基于数字,你可以在所有情况下为数字添加一些简单的前缀(例如“col25”,“col87”等)。

答案 3 :(得分:1)

点击此处:http://dev.mysql.com/doc/refman/5.0/en/identifiers.html

  

标识符可以以数字开头,但除非引用可能不包含   只是数字。

所以是的,你可以这样做 - 你需要在名字周围使用背叛。

答案 4 :(得分:-1)

MySQL中的名称可以以数字开始,但不能完全数字 - 它们不能与整数混淆。所以,没有。

如果你用数字开始你的标识符,你应该非常确定你是否坚持使用MySQL,因为许多(大多数?)其他数据库引擎需要在列名前面加上字母字符。

(如评论中所述,如果您始终使用反引号字符,则允许使用完全整数列名 - 如果您尝试使用反引号并仍然出现语法错误,请发布您使用的精确反引号语法)。

当然,如果你选择整数命名列,你会产生一些难以阅读的SQL!