# instinct: バッチINSERTの重複制約違反はON CONFLICT DO NOTHINGだけでは不十分な場合がある
## 問題
POST /public/x-favorites/ の並列リクエストによるTOCTOU競合で UniqueViolation が発生。ON CONFLICT DO NOTHING に変更後も別コードパスから同テーブルにINSERTするルートが存在し再発した。
## 教訓
- ON CONFLICT DO NOTHING はそのINSERT文の重複のみをカバー
- 同テーブルへの別コードパスが存在する場合は全箇所を修正する必要がある
- エラーログの INSERT 文を grep して全コードパスを洗い出す
## 対象テーブル
favorites (user_id, video_id) unique制約
## 関連
- vvv #350, #354
instinct: バッチINSERTの重複制約違反はON CONFLICT DO NOTHINGだけでは不十分な場合がある