PostgreSQL编写记录删除表格信息的Extension扩展

本文介绍如何在PostgreSQL中编写记录删除信息的Extension扩展,详细阐述了Extension的作用、组成部分,以及如何通过CREATE EXTENSION命令创建和管理相关对象。通过ALTER EXTENSION更新命令实现版本升级,并讨论了Extension的限制和注意事项。文章提供了源代码、编译安装步骤及参考资料。
摘要由CSDN通过智能技术生成

摘要:因为作者水平有限,暂且只是测试Extension扩展用例,

           一个典型的extension包含多个SQL对象。举个例子,如果我们创建一个新的数据类型(data type),那可能同时还需要与之相关的新函数(function)、新的操作符(operator)以及新的索引类型(index operator class)等,为了简化数据库管理,我们可以把这个新的数据类型以及所有与之相关的对象都封装到一个包(package)里。在Postgresql里,这样的包(package)就是extension。Extension至少包含一个脚本文件和一个控制文件,脚本文件(包含SQL命令)用来创建相关对象,控制文件(control file)用来指定extension的基本属性。有些extension中还包含一些C语言实现的共享库。如果具备了这些文件,一条简单的CREATE EXTENSION命令就可以将所有属于同一个extensioin的相关对象加载到数据库中。

           用extension的好处是可以让原本处于“松散”状态但实际相关的SQL对象在数据库中可以以一个整体的形式存在。一条简单的DROP EXTENSION命令就可以删除所有的相关对象,而不需要一个个的去删。除此之外,pg_dump命令在执行时仅会备份CREATE EXTENSION命令,而不备份extension中的对象,这样极大的简化了不同版本之间的相互备份和恢复。注意,在使用extension时,必须具备相关的权限(创建SQL对象、相关文件)。不允许删除extension中的单个对象,要删除必须删除整个extension,而且对单个对象的修改(如CREATE OR REPLACE FUNCTION)也不会被pg_dump备份,除非将相同的修改命令写到extension中的脚本文件中。

                    extension机制也支持添加修改脚本来对某些SQL对象进行重新定义。举个例子,1.1版本的extension在1.0的基础上增加了一个函数,并修改了另一个函数的部分代码,那创建extension的用户就可以添加一个更新脚本来做这些修改。 ALTER EXTENSION UPDATE命令可以用来使这些修改生效,同时还能知道当前添加到数据库的extension到底是哪一个版本。想知道extension所支持的SQL对象的类型,请看ALTER EXTENSION命令的相关文档。

                  注意,由于extension是属于具体的某个数据库的,诸如数据库、角色以及表空间这些所有数据库共享的对象是不能作为extension的成员对象的,虽然extension中的脚本也可以创建这些对象,但即使创建了这些对象,它们也不会被当作当前extension的一部分。另外,虽然表可以作为extension的成员,但这个表的子对象并不是extension的成员,比如表的索引。除此之外还要注意,模式(schema)可以属于extension,extension并不属于一个schema。

begin:  当然首先移步,对Extension进行基础了解.https://blog.csdn.net/liguangxianbin/article/details/79865747

              然后移步,对Hook做基础了解:hook机制

1.源代码:test.c

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值