답변 4개
구상을 해 본 적은 있는데, 실제 실행해보지는 못했습니다.
만일의 상황 대비 기존 테이블 백업 후, 다음과 같이 진행하는 것을 추천합니다.
1. 기존 point 테이블 백업 (만일의 상황 대비)
2. 기존 point 테이블 전체 데이터 삭제
</p>
<p>truncate table g5_point;</p>
<p>
3. 각 회원들의 현 보유 포인트(g5_member.mb_point), point 테이블에 반영
※ 참조 쿼리
</p>
<p>INSERT INTO `g5_point`
(`mb_id`, `po_datetime`, `po_content`, `po_point`, `po_use_point`, `po_expired`, `po_expire_date`, `po_mb_point`, `po_rel_table`, `po_rel_id`, `po_rel_action`)
select mb_id, now(), '포인트 내역 초기화', mb_point, 0, 0, '9999-12-31', mb_point, '@init', mb_id, '초기화'
from g5_member
order by mb_no asc;</p>
<p>
답변에 대한 댓글 5개
만약 다른 부분이 있다면, (가령 추가된 칼럼이 있다던지 등등)
insert 문을 아미나 빌더의 point 테이블에 맞게 변경해 볼 수 있습니다.
캡쳐해봤는데, 다른 부분은 없는것 같습니다 ㅠㅠ
댓글을 작성하려면 로그인이 필요합니다.
포인트 테이블에 모든 행을 합하여 계산되어 회원정보의 포인트로 업데이트됩니다.
포인트 테이블의 내역을 모두 삭제하시고
회원정보를 불러와, 현재 가지고있는 포인트만큼을 다시 포인트 테이블로 insert하시면
행이 줄어들겁니다.
즉 포인트 테이블에서 아이디가 test라면
test / 100포인트
test / 300포인트
test / -200포인트
이런식으로 기록이 되는데,
회원정보에서 mb_point 에는 모든 계산된 값인 200포인트가 저장되어집니다.
따라서 모든 테이블의 행을 삭제하시고
회원정보를 루프로 반복하여 읽어들인 후
다시 point테이블에 최종 포인트값만 넣으시면됩니다.
물론 백업은 필수.
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인