有条件地删除Redshift中的临时表

时间:2014-07-03 19:24:59

标签: amazon-web-services amazon-redshift

我们正在使用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检查自己是否存在临时表,但这只有在我是超级用户并且我不是以超级用户身份运行时才有效。我也可以去吞下异常,但是在我的报告框架中,我宁愿不去那里。

那么,作为普通用户,如果没有生成数据库错误,我怎么能有条件地删除临时表(如果它存在)?

1 个答案:

答案 0 :(得分:2)

我跑的测试显示我可以看到其他用户' stv_tbl_perm中的临时表使用非超级用户ID。我测试的集群版本是1.0.797。请注意,没有用户可以看到其他用户' pg_class中的临时表。