我正在尝试解析 PostgreSQL 数据库中用户(在一段时间内)执行的所有查询(通过查询 pg_stat_statements 表)并尝试创建用户使用哪些表来运行Select或Insert或删除查询。基本上运行类似Select query, queryid, userid from pg_stat_state
然后解析每个查询以检查它是Select还是Insert或Delete查询,并从查询中提取 table_Name 。
我正在使用 sqlparse python 模块,但对它很新,所以需要帮助。我可以使用以下方法获取表名:
import sqlparse
from sqlparse.sql import Where, Comparison, Parenthesis, Identifier
for tokens in sqlparse.parse(sql_statement)[0]:
if isinstance(tokens, Identifier):
print(str(tokens))
但不确定如何获取语句类型(选择/插入/删除)以及表名。此外,还需要将 COPY 语句合并为 Selects。
我尝试使用psqlparse,但我没有在网上看到太多关于这个模块的信息/帮助。
请建议。
谢谢。