MySQL:非ansi模式有什么好处

熊孩纸 阅读:207 2025-01-19 22:14:33 评论:0

因为我经常使用许多不同的数据库,所以我特意将 MySQL 切换到 ANSI 模式,以使我的代码保持一定的一致性。这样我就可以对列名和 || 使用双引号用于连接,这对大多数数据库来说是正常的(MSSQL,它似乎不使用 ||)。

除了兼容性之外,在 MySQL 中不切换到 ANSI 模式有什么好处吗?

请您参考如下方法:

来自 MySQL documentation :

ANSI
Equivalent to REAL_AS_FLOAT, PIPES_AS_CONCAT, ANSI_QUOTES, IGNORE_SPACE, and (as of MySQL 5.7.5) ONLY_FULL_GROUP_BY.



这些包含的前四种模式大多是次要的装饰性的东西,例如允许字符串连接的管道,以及忽略函数名和 ( 之间的空格。特点。从将 MySQL 代码移植到另一个数据库的角度来看,这些会很烦人,但需要进行相当小的更改。

然而, ONLY_FULL_GROUP_BY模式是另一回事。如果在 MySQL 中关闭此模式(如果 ANSI 被禁用,则会发生这种情况),则意味着您可以拥有 GROUP BY选择未出现在聚合或 GROUP BY 中的列的查询条款。这样的查询可能会在任何其他数据库上完全失败,也许除了 MariaDB。此外,如果您以 ONLY_FULL_GROUP_BY 的松懈编写所有查询模式禁用,那么如果您尝试将代码移植到另一个数据库,您可能会面临许多查询的重大重构。

我建议您坚持使用 ANSI 标准。在 ONLY_FULL_GROUP_BY的情况下,坚持它只是良好的数据库实践,其他次要的外观要求是您可能已经在做的事情。


标签:mysql
声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

关注我们

一个IT知识分享的公众号