-1

我有一个 Postgresql 9.1 服务器,我想在 Python 上编写一些函数。

有 2 种方法:plpypsycopg2。对我来说,在 plpy 中编写函数就像一场噩梦,大量的“准备”和“执行”方法……使用起来更舒服psycopg2,但我关心的是效率。

在服务器上使用 psycopg2 是否正确?

4

2 回答 2

4

They are 2 different things. plpy (PL/Python) is a stored procedure language like PLpgSQL and psycopg2 is a client library which allows Python code to access a PostgreSQL database. With PL/Python, you will need to make a connection to the database and then call your function from the database. With psycopg2, you would write Python code to call the database. Unless you have specific requirements of writing a Python function that runs from within PostgreSQL itself, use pysocpg2.

于 2012-08-07T18:23:22.727 回答
3

对我来说,用 plpy 编写函数就像一场噩梦

你已经下定决心了。即使您使用 pl/python,代码中的任何错误都将归因于语言或其环境。一段时间后,您将能够放弃您的 pl/python 代码并以您一直想要的方式重新实现它*

它的美妙之处在于,正如 Jim 上面所说,这两个接口做了完全不同的事情——一个在单个事务中在数据库内部运行,另一个作为普通客户端代码在外部运行。两种语言的用例之间几乎没有重叠。不知何故,即使您在决定哪个是“好”或“坏”时也错过了这一点。

*我们都有自己的编程偏见,但我不确定用大胆的陈述来打开一个问题是否有什么意义。

于 2012-08-07T19:48:22.873 回答