如何在已经安装好的PostgreSQL14中安装uuid 扩展

当前环境

             PG14.8 +LINUX 8.8

存在问题:

           开发人员问,PG中,支持 生成UUID吗,具体是什么,答,类似这个函数  uuid_generate_v4()
           看了一下, select uuid_generate_v4();会报错,找不到该函数
           原来postgresql 14 默认是没有该功能,但是可以通过扩展uuid-ossp来实现
 

解决办法


   由于PG是通过源码安装的,
   源码中已经有这个源码包了,不需要到处去找
  位置在:
  /postgresql/soft/postgresql-14.8/contrib/uuid-ossp

  1.检查是否已安装扩展uuid-ossp

      postgres=# \dx
                 List of installed extensions
          Name   | Version |   Schema   |         Description         
        ---------+---------+------------+------------------------------
        plpgsql | 1.0     | pg_catalog | PL/pgSQL procedural language
        (1 row)

           可以看到postgresql目前没有安装uuid-ossp扩展。
 

   2.检查是否有可用安装的扩展UUID-OSSP

      --查看当前可用的扩展

postgres=# select * from pg_available_extensions;

        name        | default_version | installed_version |                                comment                                 

--------------------+-----------------+-------------------+------------------------------------------------------------------------

plpgsql            | 1.0             | 1.0               | PL/pgSQL procedural language

plperl             | 1.0             |                   | PL/Perl procedural language

plperlu            | 1.0             |                   | PL/PerlU untrusted procedural language

plpython2u         | 1.0             |                   | PL/Python2U untrusted procedural language

plpythonu          | 1.0             |                   | PL/PythonU untrusted procedural language

adminpack          | 2.1             |                   | administrative functions for PostgreSQL

amcheck            | 1.3             |                   | functions for verifying relation integrity

bloom              | 1.0             |                   | bloom access method - signature file based index

btree_gin          | 1.3             |                   | support for indexing common datatypes in GIN

btree_gist         | 1.6             |                   | support for indexing common datatypes in GiST

citext             | 1.6             |                   | data type for case-insensitive character strings

cube               | 1.5             |                   | data type for multidimensional cubes

dblink             | 1.2             |                   | connect to other PostgreSQL databases from within a database

dict_int           | 1.0             |                   | text search dictionary template for integers

dict_xsyn          | 1.0             |                   | text search dictionary template for extended synonym processing

earthdistance      | 1.1             |                   | calculate great-circle distances on the surface of the Earth

file_fdw           | 1.0             |                   | foreign-data wrapper for flat file access

fuzzystrmatch      | 1.1             |                   | determine similarities and distance between strings

hstore             | 1.8             |                   | data type for storing sets of (key, value) pairs

intagg             | 1.1             |                   | integer aggregator and enumerator (obsolete)

intarray           | 1.5             |                   | functions, operators, and index support for 1-D arrays of integers

isn                | 1.2             |                   | data types for international product numbering standards

lo                 | 1.1             |                   | Large Object maintenance

ltree              | 1.2             |                   | data type for hierarchical tree-like structures

old_snapshot       | 1.0             |                   | utilities in support of old_snapshot_threshold

pageinspect        | 1.9             |                   | inspect the contents of database pages at a low level

pg_buffercache     | 1.3             |                   | examine the shared buffer cache

pg_freespacemap    | 1.2             |                   | examine the free space map (FSM)

seg                | 1.4             |                   | data type for representing line segments or floating-point intervals

pg_prewarm         | 1.2             |                   | prewarm relation data

pg_stat_statements | 1.9             |                   | track planning and execution statistics of all SQL statements executed

pg_surgery         | 1.0             |                   | extension to perform surgery on a damaged relation

pg_trgm            | 1.6             |                   | text similarity measurement and index searching based on trigrams

pgcrypto           | 1.3             |                   | cryptographic functions

pgrowlocks         | 1.2             |                   | show row-level locking information

pgstattuple        | 1.5             |                   | show tuple-level statistics

pg_visibility      | 1.2             |                   | examine the visibility map (VM) and page-level visibility info

postgres_fdw       | 1.1             |                   | foreign-data wrapper for remote PostgreSQL servers

autoinc            | 1.0             |                   | functions for autoincrementing fields

insert_username    | 1.0             |                   | functions for tracking who changed a table

moddatetime        | 1.0             |                   | functions for tracking last modification time

refint             | 1.0             |                   | functions for implementing referential integrity (obsolete)

tablefunc          | 1.0             |                   | functions that manipulate whole tables, including crosstab

tcn                | 1.0             |                   | Triggered change notifications

tsm_system_rows    | 1.0             |                   | TABLESAMPLE method which accepts number of rows as a limit

tsm_system_time    | 1.0             |                   | TABLESAMPLE method which accepts time in milliseconds as a limit

unaccent           | 1.1             |                   | text search dictionary that removes accents

sslinfo            | 1.2             |                   | information about SSL certificates

xml2               | 1.1             |                   | XPath querying and XSLT

bool_plperlu       | 1.0             |                   | transform between bool and plperlu

bool_plperl        | 1.0             |                   | transform between bool and plperl

hstore_plperl      | 1.0             |                   | transform between hstore and plperl

hstore_plperlu     | 1.0             |                   | transform between hstore and plperlu

jsonb_plperlu      | 1.0             |                   | transform between jsonb and plperlu

jsonb_plperl       | 1.0             |                   | transform between jsonb and plperl

hstore_plpythonu   | 1.0             |                   | transform between hstore and plpythonu

hstore_plpython2u  | 1.0             |                   | transform between hstore and plpython2u

hstore_plpython3u  | 1.0             |                   | transform between hstore and plpython3u

jsonb_plpythonu    | 1.0             |                   | transform between jsonb and plpythonu

jsonb_plpython2u   | 1.0             |                   | transform between jsonb and plpython2u

jsonb_plpython3u   | 1.0             |                   | transform between jsonb and plpython3u

ltree_plpythonu    | 1.0             |                   | transform between ltree and plpythonu

ltree_plpython2u   | 1.0             |                   | transform between ltree and plpython2u

ltree_plpython3u   | 1.0             |                   | transform between ltree and plpython3u

(64 rows)


可以看到postgres目前并没有可用的uuid-ossp扩展。
此时,直接创建uuid-ossp会报错,如:

postgres=# create extension "uuid-ossp";
ERROR:  could not open extension control file "/postgres/pg14/share/extension/uuid-ossp.control": No such file or directory
postgres=#

注意:
要用双引号将uuid-ossp引起来,因为有个中划线“-”。
 

3.PG安装UUID选项



注意:以ROOT用户去编译

su - root

cd /postgresql/soft/postgresql-14.8/
./configure --prefix=/postgresql/pg14 --with-uuid=ossp   #prefix 安装目录

该操作只是在已安装完PG后,把uuid-ossp编译安装进了PG,不影响现有库。

 

4.源码编译UUID 


#进入扩展目录
# cd  /postgresql/soft/postgresql-14.8/contrib/uuid-ossp

#编译安装
# make && make install
 

5.配置UUID的软链接



--这里需要创建软连接,否则,后面创建扩展,会报错 :找不到 /postgresql/pg14/lib/libuuid.so.16

#  find / -name libuuid.so.16

/postgresql/soft/uuid/uuid-1.6.2/.libs/libuuid.so.16

# ln -s /postgresql/soft/uuid/uuid-1.6.2/.libs/libuuid.so.16 /postgresql/pg14/lib/

 

6.创建扩展



查看可用扩展
postgres=# select * from pg_available_extensions;
...
uuid-ossp          | 1.1             |                   | generate universally unique identifiers

可以看到已经有扩展uuid-ossp了。下面可以创建了。


创建扩展
postgres=# create extension "uuid-ossp";
CREATE EXTENSION
 

7.使用UUID


安装扩展成功以后,就可以使用函数uuid_generate_v4()来生产uuid了。

postgres=# select uuid_generate_v4();
           uuid_generate_v4           
--------------------------------------
9ef673d2-3652-455c-8b6e-c634165f514b

(1 row)
 

可以看到,已经安装好了

-------------------------------------------

为了方便交流,我建立了一个微信群:水煮数据库,主要交流日常运维中用到的数据库相关问题,包含但不限于:ORACLE,PG,MYSQL,SQLSERVER,OB,TIDB,达梦,TDSQL,OPENGAUSS,人大金仓,GBASE等等,如果有兴趣交流,可以加我微信:zq24803366, 我可以拉你入群。
————————————————

                            版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
                        
原文链接:https://blog.csdn.net/cqsztech/article/details/138426614

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/674466.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

GDPU 天码行空11

(一)实验目的 1、掌握JAVA中IO中各种类及其构造方法; 2、重点掌握IO中类所具有的IO操作方法; 3、熟悉软件中登录模块的开发方法; 4、掌握IO中读写常用方法。 5、进一步熟悉正则规则的使用方法。 (二&…

Linux内核之获取文件系统超级块:sget用法实例(六十八)

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀 优质专栏:多媒…

SpringBoot+Vue+Element-UI实现医患档案管理系统

目录 前言介绍 系统展示 管理员页面 患者管理 诊疗信息管理 病历信息管理 处方信息管理 患者页面 医生页面 部分核心代码 病历信息 上传文件 数据库配置 前言介绍 随着信息技术和网络技术的飞速发展,人类已进入全新信息化时代,传统管理技…

【LAMMPS学习】八、基础知识(5.9)LAMMPS 近场动力学

8. 基础知识 此部分描述了如何使用 LAMMPS 为用户和开发人员执行各种任务。术语表页面还列出了 MD 术语,以及相应 LAMMPS 手册页的链接。 LAMMPS 源代码分发的 examples 目录中包含的示例输入脚本以及示例脚本页面上突出显示的示例输入脚本还展示了如何设置和运行各种模拟。 …

20240506 深度学习高级技术点

1.基于BN层剪枝 基于Batch Normalization (BN)层进行剪枝是一种常用的模型压缩方法,特别是在卷积神经网络(CNNs)中。BN层在训练期间用于加速收敛和提高模型的泛化能力,而在剪枝过程中,BN层提供的统计信息(特别是均值(mean)和方差…

【练习2】

1.汽水瓶 ps:注意涉及多个输入&#xff0c;我就说怎么老不对&#xff0c;无语~ #include <cmath> #include <iostream> using namespace std;int main() {int n;int num,flag,kp,temp;while (cin>>n) {flag1;num0;temp0;kpn;while (flag1) {if(kp<2){if(…

Redis(Redis配置和订阅发布)

文章目录 1.Redis配置1.网络配置1.配置文件位置 /etc/redis.conf2.bind&#xff08;注销支持远程访问&#xff09;1.默认情况bind 127.0.0.1 只能接受本机的访问2.首先编辑配置文件3.进入命令模式输入/bind定位&#xff0c;输入n查找下一个&#xff0c;shift n查找上一个&…

【微服务】网关(详细知识以及登录验证)

微服务网关 网关网关路由快速入门路由属性 路由断言网关登录校验自定义过滤器实现登录校验网关传递用户OpenFeign传递用户 网关 网络的关口&#xff0c;负责请求的路由&#xff0c;转发&#xff0c;身份校验 当我们把一个单体项目分成多个微服务并部署在多台服务器中&#xff…

运动控制“MC_MoveVelocity“功能块详细应用介绍

1、运动控制单位u/s介绍 运动控制单位[u/s]介绍-CSDN博客文章浏览阅读91次。运动控制很多手册上会写这样的单位,这里的u是英文单词unit的缩写,也就是单位的意思,所以这里的单位不是微米/秒,也不是毫米/秒,这里是一个泛指,当我们的单位选择脉冲时,它就是脉冲/秒,也就是…

如何解决3D模型变黑或贴图不显示的问题---模大狮模型网

在进行3D建模和视觉渲染时&#xff0c;经常会遇到模型表面变黑或贴图不显示的问题&#xff0c;这可能严重影响最终视觉效果的质量。这些问题通常与材质设置、光照配置或文件路径错误有关。本文将探讨几种常见原因及其解决方法&#xff0c;帮助3D艺术家和开发者更有效地处理这些…

3D相机及应用

无论是2D相机和3D相机&#xff0c;在工业应用中都有着不可或缺的作用。3D相机与2D相机的最大区别在于&#xff0c;3D相机可以获取真实世界尺度下的3D信息&#xff0c;而2D相机只能获取像素尺度下的2D平面图像信息。通过3D相机得到的数据&#xff0c;我们可以还原出被测量物体的…

最新版Ceph( Reef版本)块存储简单对接k8s

当前ceph 你的ceph集群上执行 1.创建名为k8s-rbd 的存储池 ceph osd pool create k8s-rbd 64 642.初始化 rbd pool init k8s-rbd3 创建k8s访问块设备的认证用户 ceph auth get-or-create client.kubernetes mon profile rbd osd profile rbd pool=k8s-rbd部署 ceph-rbd-csi …