我在重新啟動我的代碼時遇到了一個問題:
我的代碼包含
alter table sch1.t1 set schema sch2。
我得到一個錯誤
關系t1已經存在于schema sch2中
我嘗試添加if exists,暗示如果t1不在sch1中(已經在sch2中),它將被跳過。但是
它給了我同樣的問題。
然后我發現一個名稱為t1的視圖。 我放棄了這個視圖,用另一個名字創建,我的問題就解決了。
那么,為什么PostgeSQL在視圖上使用alter table時會出錯?它是如何作業的?為什么不只針對表?
uj5u.com熱心網友回復:
構架是命名空間,而表和視圖是可以在其中創建的一些物件。命名空間不會再按物件型別進行細分,這意味著在同一個模式中試圖創建一個視圖和一個具有相同名稱的表是一個錯誤。
uj5u.com熱心網友回復:
資訊是說,目標表已經存在!
從psql中,如果你運行d sch2.t1可以看到這個表嗎?
嘗試一下,在改變之前洗掉目的表。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/332502.html
標籤:
