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>
最初の方法は一重引用符を使用し、内側の一重引用符をエスケープすることに注意してください。これは、より標準的で推奨されるアプローチです。 2 番目の方法では二重引用符を使用しますが、場合によっては機能しますが、最初の方法ほど明確で移植性がありません。
以上がPostgreSQL の INSERT ステートメントが「列 \'X\' が存在しません」というメッセージで失敗するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。