Postgresql的网页说pgcrypto包含在Postgresql 9.1的下载中。但是,没有pgcrypto.sql文件。如果我查看share \ extension目录,则有3个文件:
pgcrypto - 1.0.sql pgcrypto - 散装 - 1.0.sql pgcrypto.control
如果我尝试使用
进行安装\ i pgcrypto - 1.0.sql
我收到一堆这样的错误:
psql:pgcrypto--1.0.sql:194: ERROR: could not access file "MODULE_PATHNAME": No such file or directory
分享\扩展名中的文件可能是由share \ contrib \ pgcrypto.sql文件调用的(不存在)。
在Postgresql 8.4上的linux上我必须安装contrib包来获取pgcrypto.sql。我是否需要在Windows上为Postgresql 9.1安装另一个软件包?
感谢。
答案 0 :(得分:17)
在v9.1中,安装额外模块的方式已更改,现在称为EXTENSIONS,并使用特殊的SQL语句CREATE EXTENSION进行安装。
答案 1 :(得分:5)
1.添加扩展程序:创建扩展程序pgcrypto
2.检查扩展程序:从pg_available_extensions选择*
3.使用扩展名:选择'{SHA}'|| encode(摘要('test','sha1'),'base64');
答案 2 :(得分:0)
我试图转换包含SHA1功能的MySQL脚本。最后做了"创建扩展pgcrypto"命令,然后PostgreSQL文档中的示例工作得很好(至少到目前为止我尝试过的所有值)。
这是SHA1功能:
CREATE OR REPLACE FUNCTION sha1(bytea) returns text AS $$
SELECT encode(digest($1, 'sha1'), 'hex')
$$ LANGUAGE SQL STRICT IMMUTABLE;
应该注意的是,我使用PgAdminIII工具和64位Windows 7在PostgreSQL 9.1上完成了所有这些工作。
答案 3 :(得分:0)
如果你需要使用一些扩展名,那么例如对于pgcrypto:" CREATE EXTENSION pgcrypto"从窗口查询,但非常重要的是,必须在您需要使用此扩展的数据库中执行此脚本,在完成脚本以验证它已安装后,在您的数据库上检查pgAdmin扩展名seccion。
我希望这有帮助。