PostgreSQL触发器和存储过程使用哪种语言?

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

0
额外 编辑
意见: 1
这是对不同语言的空触发器的性能测试: openscg.com / 2014/05 /触发开销部分-2
额外 作者 bartolo-otrit,

7 答案

当我编写我的第一个触发器时,它是在Perl中,因为这是我找到的示例中使用的语言,但是我在Python中编写的最后一个触发器,因为我对此更加轻松。

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

0
额外

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

从长远来看,我可能会使用PL / Perl或PL / Python,因为我使用perl进行快速脚本编写,并且一直在寻找python。

我发现的一件事是,在PostgreSQL网站上缺乏良好的文档。这些手册作为一个参考文件是彻底的,但作为一个教程来帮助向人们展示它应该如何完成并不能很好地工作。

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

如果有人知道一个好的网站和PostgreSQL编程的教程等,我很乐意获得它的链接。

0
额外

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

0
额外

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

Take a look: Wiki Skytools

从简单的文档看,python似乎少了一些   文档比Perl的绑定,但我会建议只是坚持   用你最熟悉的语言。
0
额外

我在plpgsql中编写了几乎所有的东西,但是我也是一个首要的数据库人员,所以它通常比任何其他语言都适合我。但有很多事情做得不好,在这种情况下,另一种语言如plperl或plpython是一个很好的选择。当然,如果速度是一个严重的问题,C就是要走的路。

0
额外
是的,我开始使用pl / python来查看安全问题,然后查看了plpgsql,发现它完成了我想要的所有功能。我喜欢。
额外 作者 Arthur Thomas,

PL / Ruby,因为我反正每天都使用Ruby。

0
额外
作为一个PL / Ruby用户,你对我的问题有任何想法吗? stackoverflow.com/questions/617600/… ? - 谢谢
额外 作者 Mike Berrow,

我使用PL / Perl,因为:

  • I like Perl
  • It's a dynamic language, which means that you can do some useful tricks easy, i.e. passing a column name to a trigger function and doing some actions with the value of this column in a trigger tuple.
  • It has a pretty good documentation
0
额外