首頁 >資料庫 >mysql教程 >為什麼我的 SQL 查詢由於區分大小寫而失敗並顯示'列...不存在”?

為什麼我的 SQL 查詢由於區分大小寫而失敗並顯示'列...不存在”?

Barbara Streisand
Barbara Streisand原創
2025-01-13 06:08:42355瀏覽

Why Does My SQL Query Fail with

PostgreSQL 區分大小寫與 SQL 查詢錯誤:「列...不存在」

執行 SQL 連線有時會導致令人沮喪的「列 'column_name' 不存在」錯誤。 這通常是由於查詢中的列名與資料庫架構中定義的實際區分大小寫的名稱之間的大小寫不匹配所致。 與其他一些資​​料庫系統不同,PostgreSQL 對此特別敏感。

問題:

考慮這個失敗的查詢:

<code class="language-sql">select sim.id as idsim, 
       num.id as idnum 
from main_sim sim 
  left join main_number num on (FK_Numbers_id=num.id);</code>

錯誤訊息指向main_sim表中不存在的「FK_Numbers_id」欄位。

解:

確實存在,但正確的大小寫至關重要。 PostgreSQL 區分大小寫的特性需要精確匹配。更正後的查詢是:

<code class="language-sql">select sim.id as idsim, 
       num.id as idnum 
from main_sim sim 
  left join main_number num on ("FK_Numbers_id" = num.id);</code>

為什麼有效:

將列名 "FK_Numbers_id" 用雙引號括起來會強制 PostgreSQL 以字面意思處理它,無論大小寫。 如果沒有引號,PostgreSQL 將根據其預設大小寫規則解釋列名,從而導致錯誤。 使用雙引號可確保與資料庫模式的定義完全相符。

以上是為什麼我的 SQL 查詢由於區分大小寫而失敗並顯示'列...不存在”?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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