如何编辑PostgreSQL存储过程?

Pau*_*aul 17 postgresql stored-procedures stored-functions

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

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

如何用PostgreSQL做同样方便的方法?我正在使用pgAdmin III.

Mil*_*dev 21

Postgres的官方发行版中包含2个客户端 - CLI一个psql和GUI一个pgAdmin.两者都支持你想要的:为psql\ef和为pgAdmin- 右键单击​​功能,"属性","代码"选项卡.

  • @redolent,您可能需要在打开的文件末尾手动添加`;`,或者只添加一个`;`并在您已经关闭编辑器时按Enter键. (3认同)
  • `\ ef`有效,但它不会保存功能? (2认同)

Erw*_*ter 6

pgAdmin中,如果激活此选项,您的生活会更轻松:

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

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

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