web-dev-qa-db-ja.com

psql 9.5:gen_random_uuid()が機能しない

SELECT gen_random_uuid()

出力を生成します

_ERROR:  function gen_random_uuid() does not exist
SQL state: 42883
Hint: No function matches the given name and argument types. You might need to add explicit type casts.
_

選択したデータベースで_CREATE EXTENSION pgcrypto;_を実行しましたが、SELECT gen_random_bytes(1)は完全に機能します(_gen_random_bytes_は、pgcrypto拡張子が手動で作成されていない他のデータベースでは機能しません)。

_% psql --version
psql (PostgreSQL) 9.5.3
_

Ubuntuのバージョンは16.04です。

16
d9k

関数が定義されているかどうかを確認するには、

select pg_get_functiondef(to_regproc('gen_random_bytes'));
select pg_get_functiondef(to_regproc('gen_random_uuid'));

または:

select * from pg_proc where proname like 'gen_random_%';

両方の関数が定義されていない場合、拡張機能の作成でエラーが発生した可能性があります-削除して再作成してください:

drop extension pgcrypto;
CREATE EXTENSION pgcrypto;
27
cohenjo