首頁 > 資料庫 > mysql教程 > 為什麼我的 PostgreSQL INSERT 語句失敗並顯示「欄位 \'X\' 不存在」?

為什麼我的 PostgreSQL INSERT 語句失敗並顯示「欄位 \'X\' 不存在」?

Barbara Streisand
發布: 2025-01-12 07:00:46
原創
402 人瀏覽過

Why Does My PostgreSQL INSERT Statement Fail with

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

在給定的PostgreSQL程式碼中,嘗試向表中插入資料導致錯誤:

錯誤訊息:

<code>psql:createConfigChangeLog.sql:11: ERROR:  column "5837-2016-08-24_09-12-22" does not exist</code>
登入後複製

錯誤原因:

該錯誤是因為PostgreSQL將last_config_version列的值解釋為列名而不是字面字串。 PostgreSQL要求字串常數用單引號括起來。

解:

為了解決這個問題,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>
登入後複製

資料中單引號的轉義:

或者,資料中的單引號可以用雙寫來轉義:

<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>
登入後複製

請注意,第一種方法使用單引號,並對內部單引號進行轉義,是更標準和推薦的做法。 第二種方法使用雙引號,雖然在某些情況下也能工作,但不如第一種方法清晰和可移植性強。

以上是為什麼我的 PostgreSQL INSERT 語句失敗並顯示「欄位 \'X\' 不存在」?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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