ホームページ >データベース >mysql チュートリアル >Postgres の DELETE クエリが「列が存在しません」というメッセージで失敗するのはなぜですか?
Postgres DELETE クエリ エラー: 「列が存在しません」
PostgreSQL で DELETE ステートメントを実行すると、「エラー: 列 "列名" が存在しません」というエラーが発生する場合があります。この紛らわしいエラーは通常、クエリ条件内の変数が二重引用符 (") で囲まれている場合に発生します。PostgreSQL はこれを値ではなく列名として解釈します。
たとえば、次のクエリでは上記のエラーが発生します:
<code class="language-sql">delete from "Tasks" where id = "fc1f56b5-ff41-43ed-b27c-39eac9354323";</code>
このエラー メッセージは、PostgreSQL が「Tasks」テーブルで「fc1f56b5-ff41-43ed-b27c-39eac9354323」という名前の列を検索しようとしていることを示しています。ただし、この列は存在しません。
問題は、PostgreSQL がテーブル名、プロシージャ名、列名など、二重引用符 (") で囲まれたものをすべて識別子として扱うことです。この場合、二重引用符が使用されているため、PostgreSQL は値「fc1f56b5」を誤って扱います。 - ff41-43ed-b27c-39eac9354323" は列名として解釈されます。
この問題を解決するには、文字定数が二重引用符ではなく一重引用符 (') で囲まれていることを確認してください。一重引用符を使用すると、PostgreSQL は指定された値を列名ではなく定数として正しく認識できます。正しいクエリは次のようになります:
<code class="language-sql">delete from "Tasks" where id = 'fc1f56b5-ff41-43ed-b27c-39eac9354323';</code>
以上がPostgres の DELETE クエリが「列が存在しません」というメッセージで失敗するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。