我们正在使用
http://aws.amazon.com/redshift/,我在报告中创建/删除临时表.偶尔我们会遇到有人创建临时表并且无法删除它的情况.
在其他数据库中,例如Redshift所基于的PostgreSQL,我可以简单地说:
DROP TEMP TABLE IF EXISTS tblfoo;
但这是Redshift中的语法错误.我可以使用http://docs.aws.amazon.com/redshift/latest/dg/r_STV_TBL_PERM.html检查自己是否存在临时表,但只有在我是超级用户并且我不是以超级用户身份运行时才有效.我也可以去吞下异常,但是在我的报告框架中,我宁愿不去那里.
那么,作为普通用户,如果没有生成数据库错误,我如何有条件地删除临时表(如果存在)?
最佳答案 我运行的测试显示我可以使用非超级用户ID在stv_tbl_perm中查看其他用户的临时表.我测试的集群版本是1.0.797.请注意,没有用户可以在pg_class中看到其他用户的临时表.