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 行記錄)