本文主要是经过简单的例子演示一下如何在Postgresql里面写Python代码。 python
检查有没有 plpython.dll 或者 plpython2.dll。 这是Postgresql 调用Python 2.X的DLL文件,在新版的Postgresql 9.X中不必定会有,这个真有点奇怪。自带的只有一个plpython3.dll, 这是针对Python 3.X的,鉴于如今 3.X的Python还不通用,主流的应用仍是使用Python 2.X。若是Postgresql里面没有,能够经过如下连接下载这个文件,而且放到 lib 下面: sql
http://forums.enterprisedb.com/posts/downloadAttach/231.page 数据库
在须要添加Python语言支持的数据库里面,运行如下SQL语句: 数组
CREATE PROCEDURAL LANGUAGE plpythonu; 函数
若是SQL运行正常返回,没有报错,就证实pl/python语言模块已经正确安装了。若是有错,请根据错误提示纠正。 post
如今咱们来建立一个方法,这个简单的方法的做用是判断某一个数值是奇数仍是偶数: spa
CREATE OR REPLACE FUNCTION iseven(integer)
RETURNS BOOLEAN AS
$BODY$
t = args[0]
return t%2 == 0
$BODY$
LANGUAGE 'plpythonu' VOLATILE
COST 100; postgresql
能够看到,这实际上是一个普通不过的SQL函数定义,只不过Python的代码是夹在两个$BODY$中间。函数的参数是经过args这个数组来得到,而后Python代码返回与SQL函数定义相一致的结果,在这里还可使用Python的 if ,for ,while ,import等。让咱们执行这一段SQL,以后你就能够看到,在数据库的Shemas->public->Functions下面有一个叫 iseven 的函数,这就是咱们刚生成的新方法。 get
到这一步,其实就跟普通的SQL函数没区别了,咱们能够试着找一些是整数型的字段传给这个新函数: io
select * from sometable where iseven(id);
总结:以上例子只是简单的介绍了一下如何在postgresql里面使用Python来扩展。之后有更深刻的探讨,再分享给你们。
谢谢