首頁 > 資料庫 > mysql教程 > 為什麼即使表存在,我的 PostgreSQL 查詢也會失敗並顯示「關係不存在」?

為什麼即使表存在,我的 PostgreSQL 查詢也會失敗並顯示「關係不存在」?

Susan Sarandon
發布: 2025-01-20 13:41:09
原創
829 人瀏覽過

Why Does My PostgreSQL Query Fail with

PostgreSQL 查詢失敗:「關係不存在」錯誤

問題

執行資料庫查詢會導致「關係不存在」錯誤,即使表名顯示正確也是如此。

解決方案

此錯誤通常表示您引用表名稱的方式有問題。 最常見的原因是大小寫敏感問題。 PostgreSQL 對於表名區分大小寫。

例如,此查詢將失敗:

<code class="language-sql">CREATE TABLE "SF_Bands" ( ... );

SELECT * FROM sf_bands;  -- ERROR!</code>
登入後複製

解決方案是使用雙引號精確匹配表名的大小寫:

<code class="language-sql">SELECT * FROM "SF_Bands";</code>
登入後複製

使用模式搜尋路徑

另一種方法涉及修改您的search_path。此設定規定 PostgreSQL 在資料庫中搜尋物件(如表)的順序。 透過將表的架構新增至搜尋路徑,您可以引用該表,而無需明確聲明架構。

要檢查您目前的搜尋路徑:

<code class="language-sql">SHOW search_path;</code>
登入後複製

要新增 showfinder 架構(替換為您的實際架構):

<code class="language-sql">SET search_path TO showfinder,public;</code>
登入後複製

調整搜尋路徑後,可以使用小寫名稱查詢表:

<code class="language-sql">SELECT * FROM sf_bands;</code>
登入後複製

有關配置search_path的全面詳細信息,請參閱 PostgreSQL 官方文件:https://www.php.cn/link/d7323519970d0e3680ef5fa1edfe0e56

以上是為什麼即使表存在,我的 PostgreSQL 查詢也會失敗並顯示「關係不存在」?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板