PostgreSQL触发器和存储过程使用什么语言?

时间:2020-03-05 18:37:40  来源:igfitidea点击:

PostgreSQL很有趣,因为它支持几种用于编写存储过程的语言。我们使用哪一个,为什么?

解决方案

回答

当我编写第一个触发器时,它是在Perl中编写的,因为这是我在示例中使用的语言,但是最后一个触发器是在Python中写的,因为我对此比较满意。

我认为程序员的舒适度是我选择python的主要原因,但是我认为Perl仍然受到更好的支持。

回答

我只真正使用过PL / pgSQL,但这是因为我需要一些相对较快的存储过程,并且不想向服务器添加额外的模块。

从长远来看,我可能会使用PL / Perl或者PL / Python,因为我使用perl进行快速脚本编写并且已经使用python了一段时间。

我发现的一件事是在PostgreSQL站点上缺少关于该文档的好的文档。这些手册作为参考非常详尽,但不能很好地作为指南来帮助人们了解应该如何做。

结合非常好的调试环境,这意味着我第一次编写过程的经验涉及很长时间查看奇怪的语法错误。

如果有人知道一个不错的站点,其中包含有关PostgreSQL编程的教程等,我很乐意获得指向该站点的链接。

回答

Skype将PostgreSQL与python一起使用,并且他们已经将PL / Python改进到了当前状态,因此我怀疑python支持是否远远落后于perl。毕竟,他们已经在这些绑定之上编写了排队/复制系统:-)

看看:Wiki Skytools

From a quick look in documentation, python seems to have less
  documentation than perl bindings, but I would suggest to just stick
  with language you are most comfortable with.

回答

我几乎用plpgsql编写了所有内容,但首先也是最重要的是数据库方面的人才,因此,与其他任何一种语言相比,它通常更适合我。但是有很多事情并不能很好地解决,在这种情况下,诸如plperl或者plpython之类的另一种语言是不错的选择。当然,如果速度是一个很重要的问题,那么C是必经之路。

回答

对于任何非常小的/简单的或者不需要大量字符串操作或者逻辑的事情,我都使用plpgsql,因为它速度很快。对于更复杂的事情,我使用plperl,因为我喜欢它。

回答

PL / Ruby,因为无论如何我每天都使用Ruby。

回答

我使用PL / pgSQL进行大多数操作,如果不能执行某些操作,则可以使用PL / Python(非常麻烦)编写函数。我们也可以使用PL / Java,PL / Perl,PL / PHP。

我想说Python可能是所有方面最好的,因为Python几乎在每个linux系统上都存在。由于语法更容易阅读,因此Perl在Python击败它之后将排在第二位。

回答

我使用PL / Perl是因为:

  • 我喜欢Perl
  • 这是一种动态语言,这意味着我们可以轻松地完成一些有用的技巧,即将列名传递给触发器函数,并在触发器元组中使用该列的值进行一些操作。
  • 它有一个很好的文档