ホームページ > データベース > mysql チュートリアル > Postgres が「列 '5837-2016-08-24_09-12-22' が存在しません」を返すのはなぜですか?どうすれば修正できますか?

Postgres が「列 '5837-2016-08-24_09-12-22' が存在しません」を返すのはなぜですか?どうすれば修正できますか?

Susan Sarandon
リリース: 2025-01-12 09:54:42
オリジナル
210 人が閲覧しました

Why does Postgres return

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

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