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