Rails6で実装されたActiveRecord#upsert_all
でバルクアップデートをしようとすると
ActiveRecord::StatementInvalid: PG::CardinalityViolation: ERROR: ON CONFLICT DO UPDATE コマンドは行に再度影響を与えることはできません HINT: 同じコマンドでの挿入候補の行が同じ制約値を持つことがないようにしてください
とエラーが出たけどCardinalityViolation
の意味がわからなかったので調べてみました。