我意识到没有类似于SQL Server Management Studio,所以我精神上准备好使用旧的printf调试。
唯一的问题是如何从存储过程中执行“printf”?
答案 0 :(得分:26)
要“打印”消息,您可以在PL / pgSQL函数中使用raise notice
:
http://www.postgresql.org/docs/current/static/plpgsql-errors-and-messages.html
请注意,客户端必须将“client_min_messages”的值设置为适当的级别才能收到“通知”。
pgAdmin有一个函数调试器:http://www.pgadmin.org/docs/1.18/debugger.html
(但我从未使用它,因为我不使用pgAdmin)。
答案 1 :(得分:10)
听起来你正在寻找实际的调试功能。 PostgreSQL实际上从PostgreSQL 8.3开始引入了这个功能。
这太棒了,完全让PostgreSQL不辜负它的标语"世界上最先进的开源数据库" 。这是一种麻烦,但these links可能会帮助你开始。启用后,它允许您设置断点或定义输入和输入。通过PGAdmin中方便的右键菜单评估所有功能。
答案 2 :(得分:5)
除了可信赖的'RAISE
命令外,还有一些我听说过的第三方工具,虽然我从未使用它们。
答案 3 :(得分:0)
PGAdmin 有一个调试器:我在使用 Postgres 12 的 ubuntu 环境中尝试了这个,它对我有用:
安装这个包
apt-get install postgresql-12-pldebugger
在您的程序所在的数据库中运行此命令
创建扩展pldbgapi;
在您的 Postgresql 安装文件夹和数据文件夹中,在 postgresql.conf 文件中更改此参数
shared_preload_libraries = 'plugin_debugger'
注意:进行此更改后,您需要重新启动 Postgres