更新时间:2025-05-29 GMT+08:00
级联失效
设置GUC参数ddl_invalid_mode值为invalid后,支持函数、存储过程和包的级联失效。
示例
--设置如下参数: SET ddl_invalid_mode='invalid'; SET CREATE TYPE type1 AS (f1 int, f2 text); CREATE TYPE CREATE OR REPLACE FUNCTION func1(var type1) RETURN varchar IS BEGIN RETURN NULL; END; / CREATE FUNCTION SELECT proname,valid FROM pg_object obj JOIN pg_proc proc ON obj.object_oid = proc.oid AND proname = 'func1' AND propackageid = 0; proname | valid ---------+------- func1 | t (1 row) DROP TYPE type1; DROP TYPE -- 查询状态。 SELECT proname,valid FROM pg_object obj JOIN pg_proc proc ON obj.object_oid = proc.oid AND proname = 'func1' AND propackageid = 0; proname | valid ---------+------- func1 | f (1 row) -- 函数未被删除,函数依然存在。 SELECT proname FROM pg_proc WHERE proname = 'func1' AND propackageid = 0; proname --------- func1 (1 row) -- 删除已创建的对象。 DROP FUNCTION func1; DROP FUNCTION
父主题: 失效重编译