web-dev-qa-db-fra.com

psql 9.5: gen_random_uuid () ne fonctionne pas

SELECT gen_random_uuid()

produit une sortie

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.

J'ai exécuté CREATE EXTENSION pgcrypto; Sur la base de données sélectionnée et SELECT gen_random_bytes(1) fonctionne parfaitement (gen_random_bytes Ne fonctionne pas sur les autres bases de données où l'extension pgcrypto n'a pas été créée manuellement).

% psql --version
psql (PostgreSQL) 9.5.3

La version Ubuntu est 16.04.

16
d9k

vous pouvez vérifier si les fonctions sont définies en utilisant

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

ou:

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

si les deux fonctions ne sont pas définies, vous avez probablement eu une erreur avec la création de l'extension - il suffit de la supprimer et de recréer:

drop extension pgcrypto;
CREATE EXTENSION pgcrypto;
27
cohenjo