でのクエリ エラー「列が存在しません」PostgreSQL では、クエリ
DELETE FROM user_job_titles WHERE id IN ( "c836d018-1d12-4507-a268-a4d80d6d3f54", "d0961a90-7d31-4c4c-9c1b-671115e3d833", "62dda420-6e62-4017-b41d-205c0aa82ead" )
が失敗します。 「エラー: 列 [値] が存在しません」エラー。これは次の理由によるものです。
PostgreSQL では、二重引用符はテーブル名と列名を参照するエスケープ文字として使用されます。文字列リテラルを誤って使用すると、構文が正しくなくなる可能性があります。指定されたクエリでは、IN リストの値が二重引用符で囲まれているため、PostgreSQL は値を文字列定数ではなく列名として解釈します。
To問題を解決するには、値を一重引用符で囲みます。
DELETE FROM user_job_titles WHERE id IN ( 'c836d018-1d12-4507-a268-a4d80d6d3f54', 'd0961a90-7d31-4c4c-9c1b-671115e3d833', '62dda420-6e62-4017-b41d-205c0aa82ead' );
このように、PostgreSQL は値を文字列定数として解釈し、これらを user_job_titles テーブルの id 列と正しく比較します。
以上がIN (リスト) を使用すると、PostgreSQL の DELETE クエリが「列が存在しません」というメッセージで失敗するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。