如何编辑PostgreSQL存储过程?

时间:2012-03-25 14:12:20

标签: postgresql stored-procedures stored-functions

我正在慢慢地从MSSQL迁移到PostgreSQL。

在MSSQL中,我可以调用已保存的过程或函数,管理shell(SQL Server Management Studio)显示了过程的文本,因此我不必将其源代码存储在文本文件中。

如何以便捷的方式使用PostgreSQL?我正在使用pgAdmin III。

5 个答案:

答案 0 :(得分:20)

Postgres的官方发行版中包含2个客户端 - CLI一个psql和一个GUI pgAdmin。两者都支持您想要的内容:psql \efpgAdmin - 右键单击​​功能,“属性”,“代码”标签。

答案 1 :(得分:3)

pgAdmin 中,如果您激活此选项,则可以让您的生活更轻松:

档案 - >选项...... - >查询工具 - > [x] 将SQL从主窗体复制到SQL对话

然后,SQL窗格中显示的内容将被复制到新打开的“查询工具”窗口。因此,在对象浏览器中选择该功能,然后单击工具栏中的放大镜图标。

请注意当前版本1.14.2中的一个漏洞。默认情况下,public对函数具有EXECUTE权限。您可以REVOKE此权限 - 这仅对SECURITY DEFINER函数有用。但是pgAdmin的反向工程DDL语句中缺少此REVOKE(NULL与空ACL混淆)。如果您删除并重新创建这样的功能,请小心!

答案 2 :(得分:3)

它也是编辑代码并进行测试的便捷方式。

1)从pgAdmin中提取所需SQL函数的代码。

2)将带有该函数的代码放入file.sql。

3)使用file.sql:

在同一目录中创建一个shell / bat文件
psql -U postgres dbname < file.sql

4)将shell / bat文件的快捷方式放入快速面板中。

5)使用您喜欢的文本编辑器编辑文件,然后按快捷方式更新功能。

答案 3 :(得分:1)

phpPgAdmin将允许您编辑存储过程并在界面中编辑它们。我们强烈建议您在外部存储版本控制的问题下留下评论。

答案 4 :(得分:0)

右键单击对象树中的功能(左侧) - &gt;脚本 - &gt;脚本创建

-OR -

执行新的SQL查询 - &gt;复制代码&#34;创建或替换功能......&#34;它呢

然后编辑脚本,不要忘记执行它