我们从一开始就使用 MySQL。那时我们认为描述性的列名是个好主意。因此,我们创建了日期、开盘价、最高价、最低价、收盘价、成交量、信号等列,以反映我们在工作中实际使用的术语。其中一些是关键字或保留字,而另一些则变成了保留字,例如信号。随着时间的流逝,许多程序以各种语言编写以使用这些表。我猜你可以看到这是怎么回事。在从 5.0 升级到 5.5 的过程中,MySQL 将信号作为保留字包含在内,这实际上意味着我们不能再升级,因为许多程序访问列信号,重新编码将是一项巨大的工作。我们真的很想升级,现在 Oracle 已经掌握了 MySQL,我们还想考虑迁移到 MariaDB。所以呢' 一个可怜的男孩要做什么?任何想法/想法都非常感谢。
最好的答案是@akuzminksy 提到的:逃离田野。
由于您表示这样做在所需的工作量方面会令人望而却步,因此可能还有另一种解决方案:预解析查询重写插件
预解析查询重写插件具有以下特征:
该插件允许在服务器处理之前重写到达服务器的 SQL 语句。
插件接收一个语句字符串并且可能返回一个不同的字符串。
当然,这需要升级到 5.7!构建这个自定义插件所需的努力也可能令人望而却步。
其他提供查询重写功能的工具有:
由于这些工具是代理,所有重写都是“预解析”完成的。
免责声明:我没有声称这实际上会起作用,但是除了代码大修之外,这是我看到的唯一前进道路。