PostgreSQL内置UUID类型,但默认安装时并没有带相关函数,需要手工生成。
在早期版本(貌似直到9.3仍如此),通过执行脚本uuid-ossp.sql可以生成UUID相关函数,该脚本通常在安装目录的share/contrib/文件夹。
psql -d dbname -U dbuser -f $PG_INSTALL_HOME$/share/contrib/uuid-ossp.sql
但到9.4版后,此方法已不可行。首先脚本变为安装目录的share/postgresql/extension文件夹下的uuid-ossp--1.0.sql和(或)uuid-ossp--unpackaged--1.0.sql;其次直接执行这两个脚本均提示“CREATE EXTENSION "uuid-ossp"”后退出。
正确的方法是按照提示创建extension,不必关心脚本是哪个以及在哪个目录。以下是在psql命令行的执行情况:
postgres=# c yourdb; yourdb=# create extension if not exists "uuid-ossp"; CREATE EXTENSION yourdb=# select uuid_generate_v1(); uuid_generate_v1 -------------------------------------- cd0f1a92-bded-11e7-91ed-f785a584d13a (1 行记录)