名称是MySQL中的保留字吗?

Cli*_*ote 5 mysql

我可以name在mysql表中命名一列吗?

Gle*_*leb 18

为什么不试试呢?

mysql> select name from name;
+------+
| name |
+------+
|    1 |
+------+
Run Code Online (Sandbox Code Playgroud)

你也可以用``引用任何名字.

mysql> select `from` from `from`;
+------+
| from |
+------+
|    1 |
+------+
Run Code Online (Sandbox Code Playgroud)

  • 没有什么比简单地试一试了! (4认同)
  • 为了回答OP的标题问题,文档指出`name`是MySQL关键字,即在SQL中具有含义,但不是_reserved_关键字,因此您可以使用它而不必将其包装在反引号中。https://dev.mysql.com/doc/refman/8.0/zh-CN/keywords.html (2认同)

小智 5

您应该可以调用列“名称”。查看http://dev.mysql.com/doc/refman/5.1/en/reserved-words.html有关如何处理保留字的更多详细信息。

用 (`) 字符包装列名称可确保即使是保留字也不会被误解。


Kei*_*h B 5

无论你是否可以,你可能首先要考虑为什么要这样做。名字是什么?什么样的名字?几年后,如果您查看数据库架构,您还会记得这些细节吗?

我建议,按照您对待任何变量名称的方式对待列名称,并为其指定一个描述性名称,这将符合您的最佳利益。多年后,您(或任何维护您代码的人)将会感谢您。

  • 好吧,“公司”表中名为“名称”的列是相当不言自明的...... (28认同)
  • 同样,我想说,“公司”表中名为“名称”的列对于任何有理智的人来说都是完全可以理解的。 (12认同)
  • @Till如果该表名为 **`companies`** (如我的评论中所述),我可能不会期望它充满人员记录。我可能希望它充满公司记录,这些记录没有名字和姓氏。如果我想仔细检查,我可以查看几行。 (11认同)