首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SQL查询分析工具

SQL查询分析工具
EN

Stack Overflow用户
提问于 2018-10-12 01:46:24
回答 1查看 66关注 0票数 1

有没有什么工具可以接受postgres查询并将其转换为JSON对象。类似于:

代码语言:javascript
复制
INSERT INTO schema_a.table_a
SELECT * from schema_b.table_b

输出:

代码语言:javascript
复制
{
'type': 'query',
'method': 'INSERT INTO',
'output':
    {
    'type': 'table',
    'schema': 'schema_a'
    'table': 'table_a'
    },
'input':
    {
    'type': 'query',
    'method': 'SELECT',
    'inputs':
    [
        {
        'type': 'table'
        'schema': 'schema_b'
        'table': 'table_b'
        }
    ]
    }
}

不一定非得如此,但我们的想法是,我们可以对输入、输出、方法进行分类,并且足够灵活,能够处理连接、子查询等。

EN

回答 1

Stack Overflow用户

发布于 2018-10-12 02:17:13

这可能不是你想要的,但EXPLAIN确实支持JSON作为输出类型,这将使用PostgreSQL的查询解析器/规划器将查询分解为其组成部分(为简洁起见,省略了一些键/值):

代码语言:javascript
复制
CREATE TABLE test ( id SERIAL PRIMARY KEY, value TEXT NOT NULL );

EXPLAIN (FORMAT JSON) INSERT INTO test VALUES (1, 'Test');
[
  {
    "Plan": {
      "Node Type": "ModifyTable",
      "Operation": "Insert",
      "Relation Name": "test",
      "Alias": "test"
    }
  }
]

EXPLAIN (FORMAT JSON) SELECT * FROM test;
[
  {
    "Plan": {
      "Node Type": "Seq Scan",
      "Relation Name": "test",
      "Alias": "test"
    }
  }
]

这肯定能够告诉您查询中使用的每个关系(包括复杂的连接、视图等)。如果您使用ANALYZE,它将能够告诉您输出行数(但不能告诉内容)。这将不能告诉您查询的输入。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52766137

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档