gpt4 book ai didi

postgresql - DROP VIEW CASCADE 可以删除哪些对象

转载 作者:行者123 更新时间:2023-11-29 12:09:07 30 4
gpt4 key购买 nike

当使用 DROP VIEW xxx CASCADE 时,除了其他 View 之外,是否还有任何其他对象可以被删除?

Documentation没有澄清太多:

CASCADE

Automatically drop objects that depend on the view (such as other views),

最佳答案

可以删除大量对象类型,但您可能会遇到的对象类型很少。

一个 View 可能被其他 View 、物化 View 或规则直接引用。 (不跟踪函数内部的引用,因此 CASCADE 不会拾取它们;它们只会在运行时失败。)

最重要的是,每个 View v 都有一个关联的复合数据类型 v 和数组类型 v[],可以用作表中列的类型,或函数的参数/返回值,CASCADE 也会选择这些。

这扩展到包含某些值表达式的每个对象定义,因为它可能包含对此类型的转换:列默认值、类型默认值、触发条件、RLS 策略、索引表达式和检查约束.如果它们引用 View 的 OID('v'::regclass)或类型('v'::regtype),它们也会被删除'v[]'::regtype).

当然,从那里它不断级联,所以可以通过 DROP VIEW 取出的对象类型列表变得很长。

但是除了文档中提到的案例之外,我怀疑您是否在做这些事情;他们决定不详细说明我并不感到惊讶......

关于postgresql - DROP VIEW CASCADE 可以删除哪些对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46338722/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com