2006-03
카테고리 카운트버그 수정
테터에서 워프로 갈아타면서 카테고리 카운트가 이상해졌습니다. 실제 글 개수는 290개 정도였는데 카테고리에 표시된 카운트는 1700개 정도되더군요.
어차피 잘 보이지 않기때문에 그냥 두려고 하다가 오늘따라 자꾸 눈에 거슬려서(?) 직접 DB를 수정해줬습니다.
wp_category, wp_post2cat 테이블의 데이터를 분석해서 원인을 파악후 대처하는 방법이 정석이겠지만 그냥 결과만 강제입력하기로 했습니다. ㅋ
처음에는 wp_category 테이블에 category_count컬럼이 있는것을 보고 wp_posts 테이블을 각 카테고리별로 카운트한후 category_count 필드에 카운트된 숫자로 각각 업데이트 시켰습니다. 끝~!
그런데 새로 글을 작성한 후 어느순간 카테고리 카운트가 원래대로 돌아와버립니다??
다시 자세히 살펴보니 외래키로만 구성된 테이블(wp_post2cat)이 있더군요. 카운트 해보니 역시나…이 테이블이 문제였습니다.
이제는 wp_category 테이블과 wp_post2cat 테이블 2개를 수정해야했습니다. ㅋ
우선 실제있는 글의 id와 wp_post2cat 테이블의 글 외래키를 비교해서 일치되는 것만 임시 테이블에 입력했습니다.
그리고 wp_post2cat 테이블을 비운후 임시테이블의 자료를 순서대로 입력해주므로써 문제를 해결한셈입니다. primary key 값도 새로 써주고요.
[code lang="SQL"]
create table tmpcat
select * from wp_post2cat
where post_id in (
select id from wp_posts
where post_status = 'publish'
) group by post_id;
## truncate table wp_post2cat;
insert into wp_post2cat
select ' ', post_id, category_id from tmpcat order by post_id asc;
## drop table tmpcat;
[/code]
이제 wp_post2cat 테이블에서 카테고리별로 카운트한 다음 wp_category 테이블의 category_count 필드를 업데이트시키는것으로 마무리했습니다.
그 결과 이제는 카테고리 카운트가 정확하게 표시되는군요 ^^
꼬리: Code Snippet 플러그인 덕분에 코드가 이쁘게 보이는군요 ㅎㅎ 소문자로 입력했는데 대문자로 다 바꿔주고 캬~
An article by 이정호