我需要查找基于表my_table的所有视图。我尝试查询
select *
from information_schema.views
where view_definition ilike '%my_table%'
并得到空表。这意味着我没有基于my_table的视图。但在尝试删除my_table后,我得到一个错误“无法删除表my_table,因为其他对象依赖于它”。
select *
from information_schema.views
where table_name = 'my_view'
并根据view_definition中为NULL的表查找具有view的行。
为什么定义可以是NULL?有没有其他方法可以找到依赖于表的视图?
2条答案
按热度按时间vptzau2j1#
阅读错误消息附带的“详细信息”消息。它将告诉您是哪些对象导致了问题。这些对象是防止删除表的依赖对象。
要删除所有这些依赖项,可以使用
DROP TABLE ... CASCADE
,就像错误消息的提示所说的那样。hgtggwj02#
这就是我所需要的。正如我所说,我有一个表的列表,有30多个元素。它不是直接回答我的问题,但它解决了问题