是否应将MySQL中的所有表名括在反引号(`)中,以防止与保留关键字发生冲突?我问的原因是因为它们的使用使SQL的可移植性降低,因为并非所有数据库都允许反引号。
那么,避免包含关键字的表名和列名会是更好的做法吗?如果是这样,可以采取什么措施来减轻MySQL在下一版本中添加新关键字的风险,该关键字可能会与您的架构发生冲突。
是否有关于此的最佳实践?
(在系统之间)最可移植的方法是使用双引号,但是,这将要求启用ANSI_QUOTES,而在大多数安装中,默认情况下该功能处于关闭状态。
ANSI_QUOTES
因此,尽管在保持不同引擎之间有用的兼容性(并且不兼容性不仅将自身限制于反引号,而且还限制了MySQL其他系统之间不计其数的其他事物),但您正在杀死不同设置之间的兼容性,MySQL这一点更为重要。
MySQL
避免使用保留关键字始终是最好的解决方案。