postgresのストアドファンクションで insertして重複したらアップデートに切り替えるというサンプルをよく見かけます。 DECLARE BEGIN □insert文 RETURN TRUE; EXCEPTION WHEN unique_violation THEN □update文 RETURN TRUE; END; この時に、update文でエラーがあった時はどうやって拾うことができますか? 下記のように、インサートしてすでにあったらエラーになる文を記述すると、otherではなくシステムエラーになりました。 DECLARE BEGIN □insert文 RETURN TRUE; EXCEPTION WHEN unique_violation THEN □エラーになる文 RETURN TRUE; WHEN other THEN RETURN FALSE; END; insertでunique_violationならupdate という書き方をしたらupdate時のエラーハンドリングは不能ですか?
↧