2014-12-03 99 views
0

我在使用psql和Centos創建視圖時遇到問題。PostgreSQL查看錯誤

我有一個包含查詢的文件。它看起來像這樣

enter image description here

當我做

psql -d cjones< order_tester.sql 

它運行正常。

然後我嘗試創建一個視圖,這是我有一個問題。

enter image description here

除非我缺少的東西是相同的文字,但它是在告訴GME有一列ID的問題。有任何想法嗎?

+2

視圖必須具有其列名稱的唯一標識符。但是當你只是運行一個查詢時,就不存在這樣的問題,輸出只是方便的標記(這些標籤不一定是正確的列名,IIRC)。 – JayC 2014-12-03 21:05:29

+0

這是所有測試的東西反正...所以你如何解決,那麼如果你需要兩個ID字段.. – 2014-12-03 21:12:24

+1

而不是'SELECT *',你引用每列,並給第二個和第三個'ID'列一個獨特的別名。 – JNevill 2014-12-03 21:21:48

回答

1

JayC和JNevill在評論中給了你答案。創建視圖時,不能有兩個名稱相同的列。

他們說你不能做一個SELECT *,而是必須做類似

SELECT con.id AS contact_id, cust.id AS customer_id, etc. 

的東西,我想補充的是,如果你希望能夠使用SELECT *爲創建一個視圖,那麼當您創建表格時,您可以避免使用通用術語(如id),而您的contacts表格可能有contact_id列,而您的customers表格可能有customer_id列。那麼你不會遇到這個問題。

+0

我只想在頂部添加一條評論,但顯然我沒有足夠的聲望點來做到這一點:P因此,添加我的評論,我總結了他們所說的話,除了添加我的評論,以便它不脫離上下文。 – 2014-12-03 21:49:01