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

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

Barbara Streisand
リリース: 2025-01-12 07:00:46
オリジナル
363 人が閲覧しました

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート