4

我想将我的一张表命名为ORDER. 我可以在 SQL 中使用关键字作为名称吗?这种做法有多糟糕?是否要这样做?

如果这种情况已经存在,那么如何在查询中使用该表的名称?例如,我想要:

SELECT * FROM ORDER;

或者

SELECT * FROM ORDER ORDER BY NAME;
4

2 回答 2

6

用反引号包装 tableName 作为ORDER保留关键字。

SELECT * FROM `ORDER` ORDER BY NAME;

在我自己看来,使用保留关键字很好,只是你不要忘记正确处理它,因为它会给你带来如此痛苦的脖子。

但是通过多年的架构设计,我从未使用过保留关键字:D

于 2013-02-17T13:51:36.407 回答
5

正如在另一个答案中所观察到的,在 MySQL 中使用反引号表示一个词是数据库对象,从而防止与保留词混淆 - 在 SQL 的其他方言中,使用方括号[ ](SQLServer) 或双引号" "(大多数其他方言)代替.

根据我的经验,在表结构中使用保留字往往会导致问题,尤其是在编写新查询时 - 可能需要一段时间才能意识到返回的错误是由于保留字是列名。还有一点(正如这个问题的存在所表明的那样)不是每个人都知道您可以通过在查询中使用适当的引用字符来解决问题。

于 2013-02-17T13:59:11.900 回答