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)


上面操作只需要在主节点操作,只读数据库不能执行相应的语句。