refint

实现引用完整性的函数

概览

扩展包名版本分类许可证语言
refint1.0FUNCPostgreSQLC
ID扩展名BinLibLoadCreateTrustReloc模式
4880refint-
相关扩展pg_idkit pgx_ulid pg_uuidv7 permuteseq pg_hashids sequential_uuids topn quantile

版本

PG18PG17PG16PG15PG14
1.01.01.01.01.0

安装

提示:这是 PostgreSQL 内核自带的 contrib 扩展

CREATE EXTENSION refint;

用法

refint: 引用完整性触发器函数

提供用于实现引用完整性检查的触发器函数(大部分已被内置外键约束取代)。

CREATE EXTENSION refint;

触发器函数

函数说明
check_primary_key()检查引用表 – 确保被引用行存在
check_foreign_key()检查被引用表 – 处理删除/更新时的级联操作

check_primary_key

引用表上的触发器(AFTER INSERT OR UPDATE)。参数:引用列名、被引用表名、被引用列名。

CREATE TRIGGER check_fk
  AFTER INSERT OR UPDATE ON orders
  FOR EACH ROW
  EXECUTE FUNCTION check_primary_key('customer_id', 'customers', 'id');

check_foreign_key

被引用表上的触发器(AFTER DELETE OR UPDATE)。参数:引用表数量、操作(cascaderestrictsetnull)、主键列,然后是引用表和列的配对。

CREATE TRIGGER check_ref
  AFTER DELETE OR UPDATE ON customers
  FOR EACH ROW
  EXECUTE FUNCTION check_foreign_key(1, 'cascade', 'id', 'orders', 'customer_id');

最后修改 2026-03-12: update extension pages (f579993)