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

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

Barbara Streisand
Barbara Streisand原創
2025-01-12 07:00:46408瀏覽

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中文網其他相關文章!

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