-- 292_study_memo_card_jobs_active_uq.sql
-- (source_kind, source_id) 활성 행 중복 차단 (232 패턴).
-- terminal status (completed/failed/skipped) 는 누적 이력이라 unique 대상 X.
-- 동시 active 1행만 보장; 버전 멱등(같은 source_version 재추출 차단)은 폴러 NOT EXISTS 책임.
-- 키에 source_version 을 넣지 않음 — 같은 (kind,id) 의 동시 active 추출은 1건이어야 함.

CREATE UNIQUE INDEX IF NOT EXISTS uq_study_memo_card_jobs_active
    ON study_memo_card_jobs (source_kind, source_id)
    WHERE status IN ('pending', 'processing');
