2011-11-03 173 views
10

該網頁PostgreSQL的說,pgcrypto包含在下載PostgreSQL的9.1。然而,沒有pgcrypto.sql文件。如果我看在共享\擴展目錄有3個文件:如何在Windows上的postgresql 9.1中安裝pgcrypto?

pgcrypto - 1.0.sql pgcrypto - 散裝 - 1.0.sql pgcrypto.control

如果我嘗試用

安裝

\我pgcrypto - 1.0.sql

我得到這樣一堆錯誤:

psql:pgcrypto--1.0.sql:194: ERROR: could not access file "MODULE_PATHNAME": No such file or directory 

也許在共享\ EXT文件ension意味着被share \ contrib \ pgcrypto.sql文件調用(它不存在)。

在PostgreSQL的8.4的Linux我必須安裝的contrib包拿到pgcrypto.sql。是否有另一個包,我必須在Windows上安裝Postgresql 9.1?

謝謝。

回答

14

在V9.1安裝額外的模塊被改變了,那些現在被稱爲擴展和安裝一個特殊的SQL語句CREATE EXTENSION

+0

我進入 「創建擴展」, 「創建擴展pgcrypto」, 「創建擴展pgcrypto - 1.0」 和 「創建擴展pgcrypto - 1.0.sql」 什麼都沒有發生。在pgAdmin的擴展中沒有新的顯示。我還需要做什麼? –

+7

'create extension pgcrypto'適用於我。你有沒有提交你的陳述?在運行CREATE EXTENSION之後,'select * from pg_available_extensions'顯示了什麼? –

+0

在pgadmin的查詢工具中運行「create extension pgcrypto」。 psql在cygwin中運行時遇到了一些問題。我必須在cygwin中遇到psql會話的問題。 –

0

我試圖轉換包含它們的SHA1功能的MySQL的腳本。在最後完成「create extension pgcrypto」命令後,PostgreSQL文檔中的例子完美運行(至少我迄今爲止所嘗試的所有值)。

這裏是SHA1功能:

CREATE OR REPLACE FUNCTION sha1(bytea) returns text AS $$ 
    SELECT encode(digest($1, 'sha1'), 'hex') 
$$ LANGUAGE SQL STRICT IMMUTABLE; 

應當指出的是,我所做的這一切對PostgreSQL的9.1與PgAdminIII工具和64位Windows 7

0

如果你需要使用一些擴展,方式是例如用於pgcrypto:「創建擴展pgcrypto」從窗口查詢,而是說這個劇本必須在你需要使用這個擴展數據庫來執行,在完成劇本後,非常重要驗證它是否已安裝,請通過數據庫檢查pgAdmin中的分機seccion。

我希望這個幫助。

1

1.增加的擴展:創建擴展pgcrypto

2.檢查擴展:SELECT * FROM pg_available_extensions enter image description here

3.使用擴展:選擇 '{SHA}' || encode(digest('test','sha1'),'base64');

enter image description here