在MySQL中转义关键字时,我是否应该使用反引号?

Tre*_*non 10 mysql sql

是否应将MySQL中的所有表名都包含在反引号(`)中以防止与保留关键字冲突?我问的原因是因为它们的使用使得SQL不那么便携,因为并非所有数据库都允许反引号.

那么避免包含关键字的表名和列名是更好的行动方案吗?如果是这样,可以采取哪些措施来降低MySQL在下一个版本中添加可能与您的架构冲突的新关键字的风险.

有关于此的最佳做法吗?

Qua*_*noi 9

最便携的方式(在系统之间)是使用双引号,但是,它需要ANSI_QUOTES在大多数安装中默认关闭的启用.

因此,尽管在不同引擎之间保持可用的兼容性(并且不兼容性并不仅限于反引号,而是仅限于MySQL其他系统之间的其他不同事物),否则会破坏不同设置之间的兼容性,MySQL这一点更为重要.

避免保留关键字始终是最佳解决方案.


Jas*_*ary 6

这是一个意见问题.但便携式代码超过了它们的使用范围.正如你所提到的,反引号可以让你使用保留字,这绝不是一件好事.对我来说,这已经证明他们弊大于利.