PostgreSQL内置UUID类型,但默认安装时并没有带相关函数,需要手工生成。
一、如果是单独的软件包安装方式如下所示
软件包到我之前的博客中提到的网站下载
1、主节点:
安装postgresql94-contrib
# yum install postgresql94-contrib-9.4.18-1PGDG.rhel6.x86_64.rpm -y
# find / -name uuid-ossp*
/usr/pgsql-9.4/lib/uuid-ossp.so
/usr/pgsql-9.4/share/extension/uuid-ossp--unpackaged--1.0.sql
/usr/pgsql-9.4/share/extension/uuid-ossp.control
/usr/pgsql-9.4/share/extension/uuid-ossp--1.0.sql
登录数据库
# su postgres
bash-4.1$ psql
执行下面语句
postgres=# create extension "uuid-ossp";
CREATE EXTENSION
尝试用导入的函数生成一个UUID
postgres=# select uuid_generate_v4();
uuid_generate_v4
--------------------------------------
28cbfa1e-d659-4aa2-a0fd-95fc7ec0aa8b
(1 row)
2、从节点;
# su postgres
bash-4.1$ psql
需要安装软件包,但是不需要执行相应的语句
# yum install postgresql94-contrib-9.4.18-1PGDG.rhel6.x86_64.rpm -y
# su postgres
bash-4.1$ psql
postgres=# select uuid_generate_v4();
uuid_generate_v4
--------------------------------------
88dd0f5e-0011-4471-9b95-008f24852b5b
(1 row)
二、通过yum安装的过程如下所示
主节点:
安装软件包
# yum install postgresql-contrib
其他过程和上面的相同
三、注意事项
上面的过程是对数据库默认创建的数据库postgres数据库进行操作,如果想其他属于普通用户的数据库使用uuid函数,必须对其数据库进行操作。
首先使用超级账户登录数据库(数据库pgdata操作用户是pgone)
bash-4.1$ psql -U postgres -d pgdata -W
peimsm=# create extension "uuid-ossp";
CREATE EXTENSION
peimsm=# select uuid_generate_v4();
uuid_generate_v4
--------------------------------------
0533a1cb-085e-49f6-a451-1508e6051e4a
(1 row)
上面操作只需要在主节点操作,只读数据库不能执行相应的语句。