게시판 합치는 방법
본문
a, b, c 게시판이 있는데 각 게시글을 새로운 d 게시판에 통합하려고 합니다.
게시물이 각각 1만건에서 2만건 정도 입니다. 첨부파일은 없습니다.
그냥 sql 백업해서 합치면 안될거 같은데요.
게시물 순서(시간순) 유지하면서 합치려면 어떻게 해야 할까요?
답변 2
아래의 내용을 한번 참고해 보세요.
실제 진행전에 테이블을 백업하고 진행을 하시는게 좋을거 같습니다.
1.
INSERT INTO g5_write_d (wr_num, wr_reply, wr_parent, wr_is_comment, wr_comment, wr_comment_reply, wr_subject, wr_content, mb_id, wr_password, wr_name, wr_email, wr_homepage, wr_datetime, wr_last, wr_ip, wr_1, wr_2, wr_3, wr_4, wr_5, wr_6, wr_7, wr_8, wr_9, wr_10)
SELECT wr_num, wr_reply, wr_parent, wr_is_comment, wr_comment, wr_comment_reply, wr_subject, wr_content, mb_id, wr_password, wr_name, wr_email, wr_homepage, wr_datetime, wr_last, wr_ip, wr_1, wr_2, wr_3, wr_4, wr_5, wr_6, wr_7, wr_8, wr_9, wr_10
FROM (
SELECT * FROM g5_write_a
UNION ALL
SELECT * FROM g5_write_b
UNION ALL
SELECT * FROM g5_write_c
) AS combined_posts
ORDER BY wr_datetime ASC;
2. wr_parent wr_num 재정렬
SET @num := 0; UPDATE g5_write_d SET wr_num = @num := @num + 1 ORDER BY wr_datetime ASC; UPDATE g5_write_d SET wr_parent = wr_id WHERE wr_is_comment = 0;
3. d 게시판의 게시물 수 업데이트
UPDATE g5_board SET bo_count_write = (SELECT COUNT(*) FROM g5_write_d WHERE wr_is_comment = 0)
WHERE bo_table = 'd';
root/abc.php를 만드세요
<?php
include "common.php";
$row=sql_fetch("select max(wr_id) as id from g5_write_a");
$next=$row['id']+10;
sql_query("update g5_write_b set wr_num=wr_num-$next, wr_id=wr_id+$next,wr_parent=wr_parent+$next");
위 코드를 복사하여 붙여넣기 해서
g5_write_a==>g5_write_b
g5_write_b==>g5_write_c로 변경하고 한번 실행
sql로 백업 후 게시판명을 합칠 게시판으로 바꾸고 복구 하면 됩니다
마지막에 게시판관리에서 카운트 조정에 체크하고 저장하세요