在Redshift中删除表格时,我收到一条错误消息:
Amazon无效操作:无法删除表 rawdata.bss_edw_customer_account,因为其他对象依赖它;
我不想使用CASCADE,因为我不知道它将杀死其他哪些表/视图。如何找出哪些表或视图依赖于要删除的表?我想确保我不会踩别人的工作。
谢谢
对象[1]和约束[2]依赖项的Redshift Admin视图可以帮助识别依赖对象。您还可以按照DROP表文档[3]中的描述创建find_depend视图,以查看任何依赖关系。
我还发现这些视图可能并不总是将物化视图列为从属对象。如果您过去创建过任何MV,则可能要使用视图DDL检查依赖关系。以下查询可能会有所帮助:
select schemaname, viewname from pg_views where schemaname not like 'pg_catalog' and schemaname not like 'information_schema' and definition like '%<tablename>%';
[1] https://github.com/awslabs/amazon-redshift-utils/blob/master/src/AdminViews/v_object_dependency.sql
[3] https://docs.aws.amazon.com/redshift/latest/dg/r_DROP_TABLE.html