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

时间:2008-08-05 06:39:31

标签: sql database postgresql stored-procedures triggers

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

9 个答案:

答案 0 :(得分:7)

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

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

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

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

如果有人知道有关PostgreSQL编程的教程等的好站点,我很乐意找到它的链接。

答案 1 :(得分:5)

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

答案 2 :(得分:5)

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

看看:Wiki Skytools

  

从文档中快速浏览一下,python似乎有所减少   文档比perl绑定,但我建议只是坚持   用你最熟悉的语言。

答案 3 :(得分:4)

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

我认为程序员的安慰是我选择python的主要原因,但我认为Perl仍然得到更好的支持。

答案 4 :(得分:3)

我使用PL / Perl是因为:

  • 我喜欢Perl
  • 这是一种动态语言,这意味着您可以轻松地执行一些有用的技巧,即将列名传递给触发器函数,并在触发器元组中使用此列的值执行某些操作。
  • 它有pretty good documentation

答案 5 :(得分:3)

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

答案 6 :(得分:3)

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

答案 7 :(得分:3)

我使用PL / pgSQL来处理大多数事情,如果有什么东西它不能用,我用PL / Python编写函数(摇滚)。您还可以使用PL / Java,PL / Perl,PL / PHP。

我认为Python可能是最好的,因为Python几乎涉及每个Linux系统。由于更容易阅读语法,Perl在Python中排名第二。

答案 8 :(得分:0)

我认为Python可能是最好的,因为Python几乎涉及每个linux系统.Python因为更容易阅读的语法而击败它