PostgreSQL「ERROR: invalid input syntax for type」の原因と対処
- 2025.09.17
概要。型に合わない文字列やフォーマットを列やキャストに渡すと、PostgreSQL は「invalid input syntax for type 」(SQLSTATE 22P02) を返す。代表的な発生箇所(INSERT/UPDATE/COPY/CAST/関数引数)と型別の落とし穴、ETLでの切り […]
概要。型に合わない文字列やフォーマットを列やキャストに渡すと、PostgreSQL は「invalid input syntax for type 」(SQLSTATE 22P02) を返す。代表的な発生箇所(INSERT/UPDATE/COPY/CAST/関数引数)と型別の落とし穴、ETLでの切り […]
このエラーは、データディレクトリ($PGDATA)直下にあるロックファイル「postmaster.pid」をPostgreSQLが検出し、「既に同じデータディレクトリでサーバが動いている」または「異常終了でロックが残っている」と判断したときに発生する。まずは本当に稼働中かを確認し、稼働中なら停止して […]
概要。集計クエリで「集約していない列」をSELECT/HAVING/ORDER BYに出そうとすると、PostgreSQLは「その列はGROUP BYに現れなければならない」と拒否する。発生条件、最短再現、正しい書き換え方(GROUP BYへ追加 / 集約関数に包む / 代表行の選定)、JOIN時の […]
全文検索の tsquery 構文が不正なときに出るエラー。未対応の記号を含む文字列を to_tsquery に渡す、演算子の並び/括弧が不正、引用符の使い方違い、ストップワード除去で式が崩れる、プレフィックス指定 :* の誤用、ダブルクオートの取り違えなどが主因。安全なクエリ生成は「ユーザー入力→p […]
他テーブルの外部キー(FOREIGN KEY)が参照している表をDROPしようとすると、依存関係の保全のために拒否される。正しい手順は「依存の見える化 → 参照元のテーブル/制約を先に処理 → 必要ならCASCADEで一括」と段階的に進める。再現用コード、依存の洗い出しSQL、DROP順序の自動生成 […]
SELECT … FOR UPDATE/NO KEY UPDATE/SHARE/KEY SHARE で行ロックを取得しようとした際、トランザクション状態や接続先、クエリ形状の制約により実行できないときに発生する。代表メッセージ別に切り分け、最短復旧手順、正しいクエリ形、代替手段(UPDATE … R […]
演算子(=、<、>、||、LIKE、ILIKE、@>、<@、~ など)に対して与えたオペランドの型の組み合わせに対応する定義が見つからないと発生する。メッセージには「operator does not exist: 左型 演算子 右型」と具体的な型が出る。型不一致・暗黙キャス […]
to_tsquery/phraseto_tsquery/websearch_to_tsquery 等で作る tsquery の構文が不正なときに出る。代表パターン(演算子の並び・未対応の記号・不一致なカッコ・ストップワードで空オペランド化)を網羅し、最短復旧、堅牢なユーザー入力処理、デバッグ手順、再 […]
トランザクション内で先行ステートメントが失敗すると、そのトランザクションは「失敗状態(aborted)」になり、ROLLBACK(またはSAVEPOINTによる部分ロールバック)で状態を戻すまで後続コマンドがすべて拒否される。代表メッセージ、発生条件、最短復旧、原因特定のコツ、psql/各言語ドライ […]
タイトルの直後に概要を配置。複数テーブル結合やサブクエリで同名列を未修飾のまま参照すると、PostgreSQLは「どのテーブルの列か特定できない」と判断して「column reference is ambiguous」を出す。発生条件、再現コード、典型的な落とし穴、実務での直し方と予防策までを網羅。 […]