【问题标题】:psql command to postgresql querypsql 命令到 postgresql 查询
【发布时间】:2014-03-14 17:51:01
【问题描述】:

我想获取代码来作为查询的结果来编辑函数,并且有一个 psql 命令可以为您提供已经生成的代码:\ef

是否可以从查询中获取 psql 命令的结果?

【问题讨论】:

标签: entity-framework function postgresql command psql


【解决方案1】:

您可以使用参数 -E - 几乎适用于所有 \commands

bash-4.1$ psql -E postgres
psql (9.4devel)
Type "help" for help.

postgres=# \l
********* QUERY **********
SELECT d.datname as "Name",
       pg_catalog.pg_get_userbyid(d.datdba) as "Owner",
       pg_catalog.pg_encoding_to_char(d.encoding) as "Encoding",
       d.datcollate as "Collate",
       d.datctype as "Ctype",
       pg_catalog.array_to_string(d.datacl, E'\n') AS "Access privileges"
FROM pg_catalog.pg_database d
ORDER BY 1;
**************************

 ....

但这不适用于 \sf 或 \ef 语句 - 这些语句使用函数 pg_get_functiondef()

postgres=# SELECT pg_get_functiondef('pg_catalog.sin'::regproc);
                     pg_get_functiondef                      
─────────────────────────────────────────────────────────────
 CREATE OR REPLACE FUNCTION pg_catalog.sin(double precision)↵
  RETURNS double precision                                  ↵
  LANGUAGE internal                                         ↵
  IMMUTABLE STRICT                                          ↵
 AS $function$dsin$function$                                ↵

(1 row)
 postgres=# SELECT pg_get_functiondef('pg_catalog.sin(double  precision)'::regprocedure);
                     pg_get_functiondef                      
 ─────────────────────────────────────────────────────────────
  CREATE OR REPLACE FUNCTION pg_catalog.sin(double precision)↵
   RETURNS double precision                                  ↵
   LANGUAGE internal                                         ↵
   IMMUTABLE STRICT                                          ↵
   AS $function$dsin$function$                                ↵

【讨论】:

  • 非常感谢,有了你给我的东西,我可以在不使用 \ef 的情况下检索我需要的东西
猜你喜欢
  • 2012-02-17
  • 1970-01-01
  • 1970-01-01
  • 2019-03-29
  • 1970-01-01
  • 1970-01-01
  • 2014-05-07
  • 2015-12-25
  • 2013-11-09
相关资源
最近更新 更多