簡體   English   中英

有條件地刪除Redshift中的臨時表

[英]Conditionally drop temporary table in 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檢查自己是否存在臨時表,但這只有在我是超級用戶並且我沒有以超級用戶身份運行時才有效。 我也可以去吞下異常,但是在我的報告框架中,我寧願不去那里。

那么,作為普通用戶,如果沒有生成數據庫錯誤,我如何有條件地刪除臨時表(如果存在)?

我運行的測試顯示我可以使用非超級用戶ID在stv_tbl_perm中查看其他用戶的臨時表。 我測試的集群版本是1.0.797。 請注意,沒有用戶可以在pg_class中看到其他用戶的臨時表。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM