当前位置: 首页 > 面试题库 >

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

杨起运
2023-03-14
问题内容

是否应将MySQL中的所有表名括在反引号(`)中,以防止与保留关键字发生冲突?我问的原因是因为它们的使用使SQL的可移植性降低,因为并非所有数据库都允许反引号。

那么,避免包含关键字的表名和列名会是更好的做法吗?如果是这样,可以采取什么措施来减轻MySQL在下一版本中添加新关键字的风险,该关键字可能会与您的架构发生冲突。

是否有关于此的最佳实践?


问题答案:

(在系统之间)最可移植的方法是使用双引号,但是,这将要求启用ANSI_QUOTES,而在大多数安装中,默认情况下该功能处于关闭状态。

因此,尽管在保持不同引擎之间有用的兼容性(并且不兼容性不仅将自身限制于反引号,而且还限制了MySQL其他系统之间不计其数的其他事物),但您正在杀死不同设置之间的兼容性,MySQL这一点更为重要。

避免使用保留关键字始终是最好的解决方案。



 类似资料:
  • 问题内容: 在Java中,表示单引号(单引号)字符,并且表示双引号(双引号)字符。 因此,效果很好。 但是,也不会产生任何编译错误。 同样,有效,但也有效。 在Java中,哪个更好用?在HTML或CSS中,诸如此类的情况更为常见(对于此类标记,我认为这是使用引号的唯一方法),但是在Java中,我通常会看到人们使用转义字符,例如 问题答案: 您无需将字符串中的字符转义(用包裹),也不必将字符中的字符

  • 问题内容: 创建表时如何使用关键字? 假设我要创建两个表,并且我希望业余爱好表ID引用人员的ID? 我怎么做? 问题答案: 与此类似,创建兴趣表:

  • 问题内容: 我已经查看了它的功能,但是实际上没有人举一个例子说明何时在Java中使用关键字吗?有人真的为此找到了用处吗? 仅将其放在我所有的浮点运算上会有副作用吗? 问题答案: Strictfp确保你从每个平台上的浮点计算中获得完全相同的结果。如果你不使用strictfp,则JVM实现可以自由使用额外的精度(如果可用)。 从JLS: 在FP-strict表达式中,所有中间值都必须是浮点值集或dou

  • 问题内容: 在Java的JPA中(通过EmbeddedId或IdClass注释)似乎仅对复合数据库键提供第二类支持。当我阅读复合键时,无论使用哪种语言,人们都会碰到它们,因为这是一件坏事。但是我不明白为什么。如今,组合键是否仍然可以使用?如果没有,为什么不呢? 我发现一个同意我的人:http : //weblogs.sqlteam.com/jeffs/archive/2007/08/23/comp

  • 问题内容: 我的老师说,当我尝试在方法中访问实例变量时,应始终使用关键字,否则将执行双重搜索。本地范围搜索,然后是实例范围搜索。 例: 我希望他错了,但我找不到任何论点。 问题答案: 否,仅在名称冲突(例如,方法参数与其所设置的实例字段具有相同名称)时使用。 它可以在其他时间使用,但是我们许多人认为它只是在代码中添加了不必要的文字。

  • 问题内容: 您需要显式创建索引,还是在定义主键时隐式创建索引?MyISAM和InnoDB的答案是否相同? 问题答案: 主键始终被索引。对于MyISAM和InnoDB,这是相同的,并且通常对所有支持索引的存储引擎都是如此。