Как сгенерировать uuid с PostgreSQL 8.4.4 на Ubuntu 10.04? - PullRequest
5 голосов
/ 30 сентября 2010

Я использую PostgreSQL 8.4.4 с Ubuntu 10.04.

Я пытаюсь сгенерировать uuid, но не могу найти способ сделать это.

У меня действительно есть uuid-ossp.sql в /usr/share/postgresql/8.4/contrib/uuid-ossp.sql

Когда я пытаюсь это, вот что я получаю:

postgres=# SELECT uuid_generate_v1();
ERROR:  function uuid_generate_v1() does not exist
LINE 1: SELECT uuid_generate_v1();
               ^
HINT:  No function matches the given name and argument types. You might need to add explicit type casts.

Есть идеи?

Ответы [ 2 ]

12 голосов
/ 30 сентября 2010

Материал в contrib не запускается автоматически. Вы должны запустить его самостоятельно, чтобы установить функции. Я не знаю о версии 8.4, но в версии 8.3 она устанавливается только для каждой базы данных, поэтому откройте базу данных, которую вы используете в psql, и введите команду \i /usr/share/postgresql/8.4/contrib/uuid-ossp.sql

1 голос
/ 30 сентября 2010

Я видел это в моих путешествиях PostgreSQL. Требуется модуль pgcrypto contrib.

CREATE OR REPLACE FUNCTION generate_uuid() RETURNS UUID AS
$$
SELECT ENCODE(GEN_RANDOM_BYTES(16), 'hex')::UUID
$$ LANGUAGE SQL IMMUTABLE;
...