我的公司有一个才华横溢,聪明的运营人员,他们非常努力。我想给他们一个SQL执行工具,以帮助他们避免在急忙时容易犯的常见的,易于检测的SQL错误。谁能建议这样的工具?详细信息如下。
运营团队的一部分职责是编写非常复杂的临时SQL查询。毫不奇怪,操作员有时会因为忙而在其编写的查询中犯错。
幸运的是,它们的查询都是不带数据更改SQL的SELECT,而且无论如何它们都在数据库的副本上运行。尽管如此,我们还是要防止它们运行的SQL错误。例如,有时错误会导致长时间运行的查询,从而减慢他们正在使用的重复系统的速度,并给其他人带来不便,直到我们找到罪魁祸首并杀死它为止。更糟糕的是,有时错误会导致表面上正确的答案,直到很久以后我们才发现,并因此而感到尴尬。
我们的开发人员还会在编写的复杂代码中犯错误,但是他们拥有Eclipse和各种插件(例如FindBugs),它们可以在键入时捕获错误。我想给运营商一些类似的东西-理想的情况是
SELECT U.NAME, C.NAME FROM USER U, COMPANY C WHERE U.NAME = 'ibell'; 在执行之前,它会说“嘿,您知道这是笛卡尔积吗?确定要这样做吗?” 不必很聪明-查找明显缺少的连接条件和类似的明显错误就可以了。
看起来TOAD应该执行此操作,但我似乎找不到任何有关此功能的信息。还有像TOAD这样的其他工具可以提供这种半智能错误纠正吗?
更新:我忘了提到我们正在使用MySQL。
问题来源于stack overflow
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
通过使用非常少量的伪数据来建立示例数据库来构建它非常容易,该伪数据库将首先接收查询。将会发生几件事:
您可能会收到一个SQL语法错误,由于它是一个小型数据库,因此不会加载太多数据库。 您可能会得到一个响应,该响应可以清楚地显示为包含一个或多个表中的每一行,这可能不是他们想要的。 满足上述条件的事情可能还可以,因此您可以针对生产数据库的副本运行它们。 假设您的架构变化不大并且也不是很奇怪,那么编写以上内容可能是解决问题的最快方法。