首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用psql命令行工具查看函数中的源代码列?

如何使用psql命令行工具查看函数中的源代码列?
EN

Stack Overflow用户
提问于 2010-11-17 08:42:36
回答 2查看 811关注 0票数 0

我正在运行下面的命令来显示PostgreSQL函数的源代码,但它很难阅读,因为还显示了其他列。有没有办法只显示源代码列?现在,我将输出复制并粘贴到不自动换行的文本编辑器中。我没有访问PgAdmin的权限。

代码语言:javascript
复制
haloror=# \df+ latest_vitals_trigger_function
                                                                                                             List of functions
 Schema |              Name              | Result data type | Argument data types | Volatility |  Owner   | Language |                                              Source code                                              | Description 
--------+--------------------------------+------------------+---------------------+------------+----------+----------+-------------------------------------------------------------------------------------------------------+-------------
 public | latest_vitals_trigger_function | trigger          |                     | volatile   | postgres | plpgsql  |                                                                                                       | 
                                                                                                                     :     declare                                                                                             
                                                                                                                     :       row record;                                                                                       
                                                                                                                     :     begin                                                                                               
                                                                                                                     :       for row in (select device_strap_status.id from device_strap_status inner join devices_users       
                                                                                                                     :                     on device_strap_status.id = devices_users.device_id where                           
                                                                                                                     :                     device_strap_status.is_fastened = 1 and devices_users.user_id = new.user_id) loop   
                                                                                                                     :           update latest_vitals set updated_at = now() where id = row.id;                                
                                                                                                                     :       if NOT FOUND then                                                                                 
                                                                                                                     :           insert into latest_vitals (id, updated_at) values (row.id, now());                            
                                                                                                                     :       end if;                                                                                           
                                                                                                                     :       end loop;                                                                                         
                                                                                                                     :       return null;                                                                                      
                                                                                                                     :     end;                                                                                                
                                                                                                                     :                                                                                                         
(1 row)
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-11-21 05:24:48

我通常在使用"\df+“之前发出"\x”,它会将值垂直放置而不是水平放置。这很好,就像一个快速的“停止将信息推到正确的地方”的变通方法。我还包装了psql二进制文件来设置我的LESS环境变量,这样pager就不会换行,这也很有帮助。

票数 2
EN

Stack Overflow用户

发布于 2010-11-17 09:15:47

好的,任何时候您想要查看psql \命令背后的sql,只需像这样启动它:

psql -E mydb

然后,当您运行\命令时,用于使其工作的查询将显示在您的输出之上。

只需复制并粘贴查询,并从选择列表中删除不需要列。

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

https://stackoverflow.com/questions/4200519

复制
相关文章

相似问题

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