加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

一个非常奇怪的PostgreSQL SQL

发布时间:2020-12-13 16:03:44 所属栏目:百科 来源:网络整理
导读:我们的PostgreSQL SERVER版本8.4中有一个奇怪的SQL.它看起来像是PG服务器执行的系统sql!我不知道这个sql?谁知道这个? –Strange sql SELECT NULL AS TABLE_CAT,n.nspname AS TABLE_SCHEM,c.relname AS TABLE_NAME,CASE n.nspname ~ '^pg_' OR n.nspname =
我们的PostgreSQL SERVER版本8.4中有一个奇怪的SQL.它看起来像是PG服务器执行的系统sql!我不知道这个sql?谁知道这个?

–Strange sql

SELECT NULL AS TABLE_CAT,n.nspname AS TABLE_SCHEM,c.relname AS TABLE_NAME,CASE n.nspname ~ '^pg_' OR n.nspname = 'information_schema'  
          WHEN true THEN 
            CASE 
               WHEN n.nspname = 'pg_catalog' OR n.nspname = 'information_schema' THEN 
                 CASE c.relkind   
                   WHEN 'r' THEN 'SYSTEM TABLE'   
                   WHEN 'v' THEN 'SYSTEM VIEW'   
                   WHEN 'i' THEN 'SYSTEM INDEX'   
                   ELSE NULL   
                 END  
               WHEN n.nspname = 'pg_toast' THEN 
                 CASE c.relkind 
                   WHEN 'r' THEN 'SYSTEM TOAST TABLE'   
                   WHEN 'i' THEN 'SYSTEM TOAST INDEX'   
                   ELSE NULL   
                 END  
               ELSE 
                 CASE c.relkind   
                   WHEN 'r' THEN 'TEMPORARY TABLE'   
                   WHEN 'i' THEN 'TEMPORARY INDEX'   
                   ELSE NULL   
                 END  
             END  
             WHEN false THEN 
               CASE c.relkind  
                 WHEN 'r' THEN 'TABLE'  
                 WHEN 'i' THEN 'INDEX'  
                 WHEN 'S' THEN 'SEQUENCE'  
                 WHEN 'v' THEN 'VIEW'  
                 ELSE NULL  
               END  
             ELSE NULL  
           END  AS TABLE_TYPE,d.description AS REMARKS  
      FROM pg_catalog.pg_namespace n,pg_catalog.pg_class c  
 LEFT JOIN pg_catalog.pg_description d ON (c.oid = d.objoid 
                                      AND d.objsubid = 0)  
 LEFT JOIN pg_catalog.pg_class dc ON (d.classoid = dc.oid 
                                 AND dc.relname='pg_class'

解决方法

它是postgresql JDBC驱动程序中getTables()实现的一部分.

谷歌codesearch将引导您.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读