PostgreSQL ユーザーは、「postgres カラム "X" が存在しません」というエラーに遭遇することがよくあります。これは通常、SQL クエリ内の列を誤って参照した場合に発生します。 この問題は通常、文字列値を列名として扱うことが原因で発生します。
解決策は、SQL ステートメント内で文字列リテラルを適切に引用符で囲むことです。 テキスト データを表す文字列には、列名やテーブル名と区別するために一重引用符または二重引用符が必要です。
修正された例は次のとおりです:
<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>
「5837-2016-08-24_09-12-22」が一重引用符で正しく囲まれ、文字列値として識別されることに注目してください。
PostgreSQL で文字列リテラルを処理する場合は、次のガイドラインに従ってください。
'
) を使用して文字列内の単一引用符をエスケープします。 例:<code class="language-sql">INSERT INTO config_change_log (change_description) VALUES ('This text contains a ''single'' quote.');</code>
または
<code class="language-sql">INSERT INTO config_change_log (change_description) VALUES ("This text contains a 'single' quote.");</code>
以上がPostgreSQL クエリで「postgres カラム \'X\' が存在しません」エラーが発生するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。