將資料插入 PostgreSQL 表時,錯誤「列「X」不存在」通常表示 INSERT
語句中提供的值有問題。 這通常源自於格式不正確的字串文字。
原始問題中所示的錯誤訊息可能表示 last_config_version
列有問題。 字串值的錯誤引用是最常見的原因。
問題:錯誤的字串引用
PostgreSQL 使用單引號 ('
) 來分隔字串文字。 使用雙引號 ("
) 會將字串視為列標識符,如果該字串不是實際的列名稱,則會導致「列 'X' 不存在」錯誤。
解 1:正確的字串引用
插入 last_config_version
值的正確方法是將其括在單引號中:
<code class="language-sql">INSERT INTO config_change_log (last_config_version, is_done, change_description) VALUES ('5837-2016-08-24_09-12-22', false, '{ ''key'':''value''}');</code>
請注意在 last_config_version
值周圍使用單引號。 此外,在 change_description
類似 JSON 的字串中,單引號透過加倍進行轉義 (''
)。
解 2:處理資料中的單引號
如果您的資料需要單引號,則必須透過雙引號來轉義它們。 例如:
<code class="language-sql">INSERT INTO config_change_log (last_config_version, is_done, change_description) VALUES ('5837-2016-08-24_09-12-22', false, '{ "key":"value"}');</code>
這假設 change_description
旨在保存 JSON 數據,並且您在 JSON 字串中對鍵和值使用雙引號,這是標準的 JSON 實踐。 如果不是 JSON,請使用資料類型的適當轉義進行相應調整。
透過正確引用字串文字並在必要時轉義單引號,您的 INSERT
語句將成功執行,避免「列「X」不存在」錯誤。 請務必仔細檢查您的語法,尤其是字串值方面的語法,以防止這種常見的 PostgreSQL 問題出現。
以上是為什麼我的 PostgreSQL INSERT 語句中出現「列 \」X\」 不存在」錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!