-- 게임 좋아요 서버 영속화: (game_id, user_key) 사용자별 1회 좋아요 멱등 보장 -- 적용 전 반드시 중복 row 점검 후, 중복이 있으면 제거하고 제약 추가할 것. -- 이 파일은 작성만 한다. DB 적용은 orchestrator 가 사용자 확인 후 수행. -- 1) 중복 점검 (적용 전 실행, 결과가 0행이어야 안전) SELECT game_id, user_key, COUNT(*) FROM game_likes GROUP BY game_id, user_key HAVING COUNT(*) > 1; -- 2) (중복이 있을 경우) 최신 1건만 남기고 제거 — 점검 결과 확인 후 수동 실행 -- DELETE FROM game_likes gl -- USING game_likes keep -- WHERE gl.game_id = keep.game_id -- AND gl.user_key = keep.user_key -- AND gl.id < keep.id -- AND keep.id = (SELECT MAX(id) FROM game_likes x WHERE x.game_id = gl.game_id AND x.user_key = gl.user_key); -- 3) UNIQUE 제약 추가 ALTER TABLE game_likes ADD CONSTRAINT uq_game_likes_game_user UNIQUE (game_id, user_key); -- 롤백: -- ALTER TABLE game_likes DROP CONSTRAINT uq_game_likes_game_user;