執行資料庫查詢會導致「關係不存在」錯誤,即使表名顯示正確也是如此。
此錯誤通常表示您引用表名稱的方式有問題。 最常見的原因是大小寫敏感問題。 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中文網其他相關文章!