将SQL查询解析成类似于DOM的树形结构以实现自动排列?

6
我有一个庞大而复杂的SQL视图需要调试。视图中有一条记录没有显示出来,我需要确定是哪个子句或连接导致该记录未出现。目前,我的方法非常繁琐,一次删除一个子句并运行查询以查看所需行是否出现。
我认为如果能够以编程方式完成这项工作将会很棒,因为我每两周左右就要深入到像这样的查询中。
有人知道是否有一种方法将SQL查询解析为对象树(例如在sqlalchemy.sql.expression中的对象),以便我能够排列树并执行结果吗?

嗯...我很好奇是否有一种方法可以在任何流行的关系型数据库管理系统中逐步执行计划,从而实现相同的目标。如果没有类似你所建议的东西,你可能可以自己编写。你需要将连接转换为嵌入式SQL,并拆分查询,以便可以单独执行和检查每个嵌入块。 - Mario Aguilera
谢谢@Mario,我使用Toad作为我的数据库UI,但我在选项中没有看到类似的东西,不过你提出的将SQL分解并自己完成这个想法听起来不错(但很复杂)! - Ben Page
1个回答

6
如果您在SQLAlchemy中没有定义视图,我认为它无法帮助您。 您可以尝试使用类似sqlparse的工具,这可能会有所帮助。您可以对其输出进行排列组合,并使用SQLA将排列组合作为原始SQL执行。

谢谢,我在SQLAlchemy中没有定义视图,并希望SQLAlchemy能够为我完成这个任务,sqlparse似乎是最好的解决方案。 - Ben Page

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接