PostgreSQL エラーの解決:「列 "5837-2016-08-24_09-12-22" が存在しません」
このエラー メッセージが表示された場合は、列名を二重引用符で囲む必要があるのに対し、文字列定数は一重引用符で囲む必要があることに注意することが重要です。この場合、値「5837-2016-08-24_09-12-22」が文字列リテラルではなく列名と間違えられたためにエラーが発生しました。
この問題を解決するには、次のように 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>
文字列定数を一重引用符で囲むと、列名ではなく値として正しく認識されます。
また、次の例のように、データ内の単一引用符を 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 列の一重引用符が構文エラーを引き起こすのではなく、文字列値の一部として解釈されるようになります。
潜在的な競合を回避し、正しい構文を保証するために、文字列定数には一重引用符を使用し、列名には二重引用符を使用することを常にお勧めします。これらの修正を実装すると、「列が存在しません」エラーが発生することなく、PostgreSQL データベースにデータを正常に挿入できるようになります。
以上がPostgres が「列 '5837-2016-08-24_09-12-22' が存在しません」を返すのはなぜですか?どうすれば修正できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。