可以用数字来命名MySQL表列吗?
我有一个表,它有25、50、100等列名 尝试更新表时,无论我如何更新,都会出现错误可以用数字来命名MySQL表列吗?,mysql,ddl,Mysql,Ddl,我有一个表,它有25、50、100等列名 尝试更新表时,无论我如何更新,都会出现错误 UPDATE table SET '25'='100' WHERE id = '1' 我尝试过引用和回溯每一种方式,但没有成功 错误总是沿着以下路线出现: 您的SQL语法有错误;检查与MySQL服务器版本对应的手册,以了解第1行“25”=100,其中id=1”附近要使用的正确语法 如果我将列名更改为twenty5,我没有问题,但这不是我想要的。是否可以使用数字作为列名?如果出于某种原因需要以数字为基础,您可以
UPDATE table SET '25'='100' WHERE id = '1'
我尝试过引用和回溯每一种方式,但没有成功
错误总是沿着以下路线出现:
您的SQL语法有错误;检查与MySQL服务器版本对应的手册,以了解第1行“25”=100,其中id=1”附近要使用的正确语法
如果我将列名更改为
twenty5
,我没有问题,但这不是我想要的。是否可以使用数字作为列名?如果出于某种原因需要以数字为基础,您可以在所有情况下为数字添加一些简单的前缀(例如“col25”、“col87”等)。来自:
标识符可以以数字开头,但除非引用,否则不能仅由数字组成
这意味着你必须用后面的记号来引用它,比如'25':
UPDATE table SET `25`='100' WHERE id='1'
MySQL中的名称可以以数字开头,但不能完全是数字——它们不能与整数混淆。所以,不
如果您的标识符以一个数字开头,您应该非常确定您使用的是MySQL,因为许多(大多数?)其他数据库引擎要求在列名的前面有一个字母字符
(如注释中所述,如果您始终使用反勾号字符,则允许使用完全整数列名-如果您尝试反勾号,但仍然出现语法错误,请发布您使用的精确反勾号语法)
当然,如果您选择整数命名列,您将产生一些难以读取的SQL 检查这里:
标识符可以以数字开头,但除非引用,否则可能不包括
完全由数字组成
是的,你可以这样做——你需要在名称周围使用倒勾。正如其他人所说,你可以倒勾表、列等的名称。只要确保你没有倒勾你的值,否则它会将它们解释为列名。因此,在您的示例中,只需重新勾选25:
UPDATE table SET `25`=100 WHERE id=1
你确定吗?我刚刚创建了一个名为
1
的表,其中包含一个名为2
的列,当然,我必须大量地应用反勾号。这在MySQL中是不正确的事实上,你们都是对的(MySQL文档比informit.com的要好)。我已经给出了答案,但我仍然想说,我认为使用数字字段名有点不合常规,我倾向于在字段前面加前缀。请参阅本文,谢谢。阅读了一些文章后,我同意,在专栏前面加上前缀是一种更好的做法。只要你正确地引用,数字就可以了。