我正在尝试从 SQL 查询中提取表名,并且在使用 Python SQL 解析器(如 sqlparse)时遇到了一些困难。问题在于别名 - 解析器会将真实表名与其别名混淆,并仅返回别名。
我的目标不是编辑解析器,而是预先使用正则表达式从 SQL 查询中清除别名,以便解析器可以完成其工作。
我也不需要将查询中的所有别名调用重命名为原始名称,因为此解析的上下文只需要表名而无需其他任何内容。
为了明确起见,给定这个查询(作为字符串):
SELECT * FROM schema.table alias
正则表达式将返回:“SELECT * FROM schema.table” - 然后将其发送以进行进一步处理以获取表名。如果没有别名,如:
SELECT * FROM schema2.table2
然后它将返回未更改的字符串。
我该怎么做?是否有任何其他 python sql 解析器能够使用别名处理这个问题?