
# 级联失效
设置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
```
