2017-02-22 63 views
2

PostgreSQL中的Redshift是否具有與pg_sleep()類似的功能?在Amazon Redshift中延遲執行SQL腳本

我有一個SQL腳本需要等待一段時間才能繼續執行。

Unsupported PostgreSQL Functions不支持pg_sleep()的Redshift文檔。

更新1:

我遇到了Redshift中的死鎖問題。我有多個進程可以用DROP/TRUNCATE/INSERT/UPDATE/SELECT查詢一個表(或一組表)。如果發生死鎖,我試圖捕獲這個異常,並讓進程等待一段時間並重試。對處理死鎖有什麼建議嗎?

+0

它只是需要等待一段時間,還是需要等到某個外部事件(希望)發生? –

+0

是的,你是否擔心最終的一致性或類似的情況? – systemjack

+0

強迫腳本等待幾乎總是做錯事 - 你的用例是什麼,即你爲什麼要睡覺? – saille

回答

0

我不知道這是否會實際工作...有點懷疑這一點,但你可以嘗試使用一個Python User Defined Function

CREATE OR REPLACE FUNCTION janky_sleep (x float) RETURNS bool IMMUTABLE as $$ 
    from time import sleep 
    sleep(x) 
    return True 
$$ LANGUAGE plpythonu; 

select janky_sleep(5.0); 
0

您是否嘗試過在桌子上使用鎖。我和你有類似的情況,鎖在桌子上幫助我過來。