postgres=# \d pg_constraintTable"pg_catalog.pg_constraint"Column|Type|Modifiers---+---+---conname|name|notnull-- 约束名connamespace|oid|notnull-- 约束所在命名空间的OIDcontype|"char"|notnull-- 约束类型condeferrable|boolean|notnull-- 约束是否可以推迟condeferred|boolean|notnull-- 缺省情况下,...
pg_depend 是 postgres 的一张系统表,用来记录数据库对象之间的依赖关系,除了常见的主外键,还有其他一些内部依赖关系,可以通过这个系统表呈现出来。 postgres=# \d+ pg_depend Table "pg_catalog.pg_depend" Column | Type | Modifiers | Storage | Stats target | Description ---+---+---+---+---+--...
aligputf8=#selectoid,relnamefrompg_classwhereoid='pg_class'::regclass; oid | relname ---+--- 1259 | pg_class (1 row) 这样子就可以通过regclass寻找一个表的信息,就不用去关联 pg_class跟pg_namespace(记录schema信息)了。比较方便。 同样的,其他几个类型也是一样的用法,如regproc(regprocedure)...
通过修改 pg_attribute 基表的方式来绕开这个限制 #通过表名查出attrelid SELECT relname, attname,attnum,attrelid,attname FROM pg_class c,pg_attribute attr WHERE relname = '表名' AND c.oid = attr.attrelid; #修改字段长度 注意 varchar类型额外加4 update pg_attribute set atttypmod =34 WHERE at...
SELECT usename FROM pg_user; 4 列出某个表的字段 SELECT a.attname FROM pg_class c, pg_attribute a, pg_type t WHERE c.relname = '表名' AND a.attnum > 0 AND a.attrelid = c.oid AND a.atttypid = t.oid 1. 2. 3. 4. ...
通过插件的 depend 功能,依赖pg_cron 自动设置 pg_cron 将其回收站中超过 1 天的数据清除 DML 操作 通过参数vacuum_defer_cleanup_age来调整 Dead 元组在数据库中的量,以便恢复误操作的数据。接下来将根据流复制延迟恢复和备份恢复两种设计方案来具体介绍: ...
通过插件的 depend 功能,依赖 pg_cron 自动设置 pg_cron 将其回收站中超过 1 天的数据清除 DML 操作 通过参数 vacuum_defer_cleanup_age 来调整 Dead 元组在数据库中的量,以便恢复误操作的数据。接下来将根据 流复制延迟恢复和备份恢复两种设计方案来具体介绍: 流复制延迟恢复 PostgreSQL 流复制时可以通过 recover...
重命名触发器的关键调用流程为:standard_ProcessUtility-->ExecRenameStmt-->renametrig,基本原理也是读取 pg_trigger 系统表的信息,修改以后写回系统表。 修改触发器依赖插件的关键调用流程为:standard_ProcessUtility-->ExecAlterObjectDependsStmt,会修改 pg_depend 系统表。 Event Trigger 根据PG 14 官方文档,ALTER ...
有多种不同类型的可锁对象:整个关系(如表)、关系的单个页、关系的单个元组、事务ID(包括虚拟和永久ID)和普通数据库对象(由类OID和对象OID标识,和pg_description或pg_depend中的相同方式)。扩展一个关系的权力也被表示为一个独立的可锁对象。"咨询"锁可以具有用户定义的意义。
* Note: object ID has same representation as in pg_depend and * pg_description, but notice that we are constraining SUBID to 16 bits. * Also, we use DB OID = 0 for shared objects such as tablespaces. */ LOCKTAG_RESOURCE_QUEUE, /* ID info for resource queue is QUEUE ID */ ...