2
根據某些情況,我在PostgreSQL中有一個視圖,它既可以是普通的也可以是物化的。我試圖編寫一個查詢,可以肯定地放下視圖,而且無論現在的類型如何,都不會有錯誤。但是,這似乎並不容易。當我嘗試使用下面的代碼,我得到一個錯誤:在一個查詢中刪除Postgresql 9.3中的普通或實例化視圖
DROP VIEW IF EXISTS {{ schema }}.{{ viewName }};
DROP MATERIALIZED VIEW IF EXISTS {{ schema }}.{{ viewName }};
SQLSTATE[42809]: Wrong object type: 7 ERROR: "{{ viewName }}" is not a view
HINT: Use DROP MATERIALIZED VIEW to remove a materialized view.
因此,它看起來像「IF存在」的第一行中產生真正的視圖時物化,DROP命令啓動,但因視圖類型錯誤而失敗(這是不正常的)。任何人都可以提出一個通用的解決方法,既可以用於物化視圖,也可以用於普通視圖。