Redshift drop有依赖关系的表
发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,今天开发需要删除AWS Redshift的一个归档表,但是直接drop发生了如下报错,发现有其他对象依赖这个表,导致无法直接删除,但是报错没有直接显示是什么对象依赖它,可能是有视图,外键等约束anal
千家信息网最后更新 2026年11月01日Redshift drop有依赖关系的表
今天开发需要删除AWS Redshift的一个归档表,但是直接drop发生了如下报错,发现有其他对象依赖这个表,导致无法直接删除,但是报错没有直接显示是什么对象依赖它,可能是有视图,外键等约束
analyticsprod=# DROP TABLE IF EXISTS facts.auto_events_bk_20170223;
ERROR: cannot drop table auto_events_bk_20170223 because other objects depend on it
HINT: Use DROP ... CASCADE to drop the dependent objects too.
通过\d+ auto_events_bk_20170223 查看表结构,发现并没有其他表的外键约束,所以排除;
然后通过\dv+命令在schema:facts下查看视图,但是发现没有任何view存在,但是view可能存在其他schema或db,
那么问题来了,如何在整个数据库中找到与这个表有依赖的的view?
这里AWS Redshift已经给我们提供了一个好的方法,参考链接:https://docs.aws.amazon.com/redshift/latest/dg/r_DROP_TABLE.html
创建一个视图find_depend:
create view find_depend asselect distinct c_p.oid as tbloid,n_p.nspname as schemaname, c_p.relname as name,n_c.nspname as refbyschemaname, c_c.relname as refbyname,c_c.oid as viewoidfrom pg_catalog.pg_class c_pjoin pg_catalog.pg_depend d_pon c_p.relfilenode = d_p.refobjidjoin pg_catalog.pg_depend d_con d_p.objid = d_c.objidjoin pg_catalog.pg_class c_con d_c.refobjid = c_c.relfilenodeleft outer join pg_namespace n_pon c_p.relnamespace = n_p.oidleft outer join pg_namespace n_con c_c.relnamespace = n_c.oidwhere d_c.deptype = 'i'::"char"and c_c.relkind = 'v'::"char";
查询视图找到与表auto_events_bk_20170223相关的view:
analyticsprod=# select * from facts.find_depend where schemaname='facts' and name not in ('find_depend') order by name; tbloid | schemaname | name | refbyschemaname | refbyname | viewoid--------+------------+-------------------------+-----------------+-------------+--------- 879566 | facts | auto_events_bk_20170223 | public | map_routes2 | 965969 879566 | facts | auto_events_bk_20170223 | public | map_routes | 966155 879566 | facts | auto_events_bk_20170223 | public | map_edges | 1019697(3 rows)analyticsprod=# set search_path to public;analyticsprod=# \dv List of relations schema | name | type | owner--------+-----------------------+------+------- public | map_edges | view | fengw public | map_edges_group | view | fengw public | map_route_edges_group | view | fengw public | map_routes | view | fengw public | map_routes2 | view | fengw public | map_routes_group | view | fengw(6 rows)最后如果判断这些相关的view没有用的话,可以通过命令drop table auto_events_bk_20170223 cascade删除表,包括视图一同删除。
视图
命令
对象
可以通过
数据
数据库
方法
有用
结构
链接
问题
参考
开发
查询
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
云南咖啡
互联网科技企业
华服互联网科技靠谱吗
互联网科技网
麻工互联网科技
朗涯互联网科技
天津摩尔互联网科技
人人互联网科技是培训
美国互联网前沿科技
银川新华互联网科技学校地址
天速互联网络科技有限公司
福州新华互联网科技学校 知乎
成都铂石互联网科技做什么的
福建科技产业互联网发展
广州新华互联网科技学校电竞方面
北京市互联网新科技
有人说阿里系是互联网科技企业
江苏互联网科技小贷
唐山双旺合互联网科技产业园
亚光科技低轨卫星互联网
互联网科技公司起名
南京欣网互联网科技
天下捷融互联网科技
科技赋能互联网健康
玖二柒互联网科技公司待遇
互联网经济与金融科技
国大互联网教育科技有限公司薪资
图游互联网科技
唐山双旺合互联网科技产业园
网互联网络科技