首頁 >資料庫 >mysql教程 >儘管列存在,為什麼我的 PostgreSQL 查詢失敗並顯示'列\”大陸\”不存在”?

儘管列存在,為什麼我的 PostgreSQL 查詢失敗並顯示'列\”大陸\”不存在”?

Susan Sarandon
Susan Sarandon原創
2025-01-20 19:58:12625瀏覽

Why Does My PostgreSQL Query Fail with

PostgreSQL資料庫錯誤:欄位「Continent」不存在

問題背景:

一個Java應用程式在查詢資料庫時遇到錯誤,提示列「Continent」在特定表中不存在,儘管在pgAdmin 4中已確認該列存在。該查詢試圖從該列中選擇非空值。

問題診斷:

  • 透過pgAdmin 4驗證,列「Continent」確實存在於「network.countries」表中。
  • 查詢顯示應用程式正確取得了列名和表名,排除了拼字或語意錯誤。
  • 錯誤訊息暗示列名可能需要使用不同的模式或表格來引用。

解:

透過在查詢中用雙引號括起來列名來解決此問題:

<code class="language-sql">SELECT "Continent"
FROM network.countries
...</code>

PostgreSQL要求當列名包含特殊字元或與關鍵字衝突時,必須用雙引號括起來。在本例中,「Continent」是PostgreSQL中的保留關鍵字,因此需要用引號括起來。

附加說明:

  • 直接在pgAdmin 4中執行查詢可能不會遇到相同的錯誤,因為介面會自動處理引號。
  • 在查詢中使用「countries.Continent」也可能有效,但這引入了對「countries」模式的依賴。用雙引號括起列名提供了一個更通用的解決方案,無論表位於哪個模式中,該方案都能正常運作。

以上是儘管列存在,為什麼我的 PostgreSQL 查詢失敗並顯示'列\”大陸\”不存在”?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn