ホームページ >データベース >mysql チュートリアル >PostgreSQL の複数行 UPDATE クエリでの Null 型キャスト エラーを処理する方法
VALUES 式を使用して複数の行を更新しようとすると、指定された値に null が含まれる場合、PostgreSQL でエラーが発生する場合があります。これは、PostgreSQL が式内のリテラル値に基づいてデータ型を自動的に割り当てるためです。これにより、null と実際の列の型を一致させようとすると不一致が生じる可能性があります。
この問題に対処するには、次の手法を検討してください。
information_schema または pg_catalog をクエリして、ターゲット テーブルの列の型を特定します。これにより、VALUES 式の値を正しい型に明示的にキャストできます。
列の型を確立するために、NULL 値を持つ 1 つの行を取得するサブクエリを作成します。次に、UNION ALL を使用して残りの行に実際のデータ値を追加します。これにより、列の型が正しく定義されます。
VALUES 式の各値の列型を指定します。これにより、PostgreSQL は曖昧さなく型を解決できます。
VALUES 式の各行を、ターゲット テーブルに対応する行タイプとしてエンコードします。これにより、正しい列タイプが暗黙的に割り当てられます。
から列タイプを抽出する 手法 4 と似ていますが、VALUES 式で関連する列タイプのみを指定します。ターゲット テーブルの行の型をフェッチし、キャストに必要な列の型を抽出します。
これらの方法のいずれかを採用することで、複数行の更新クエリにおける null 型のキャストの問題を効果的に解決し、一貫したデータ更新を保証できます。 .
以上がPostgreSQL の複数行 UPDATE クエリでの Null 型キャスト エラーを処理する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。