ホームページ >データベース >mysql チュートリアル >PostgreSQL の INSERT ステートメントが「列 \'X\' が存在しません」というメッセージで失敗するのはなぜですか?

PostgreSQL の INSERT ステートメントが「列 \'X\' が存在しません」というメッセージで失敗するのはなぜですか?

Barbara Streisand
Barbara Streisandオリジナル
2025-01-12 07:00:46404ブラウズ

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>

最初の方法は一重引用符を使用し、内側の一重引用符をエスケープすることに注意してください。これは、より標準的で推奨されるアプローチです。 2 番目の方法では二重引用符を使用しますが、場合によっては機能しますが、最初の方法ほど明確で移植性がありません。

以上がPostgreSQL の INSERT ステートメントが「列 \'X\' が存在しません」というメッセージで失敗するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。