게시판 합치는 방법

게시판 합치는 방법

QA

게시판 합치는 방법

본문

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로 백업 후 게시판명을 합칠 게시판으로 바꾸고 복구 하면 됩니다

 

마지막에 게시판관리에서 카운트 조정에 체크하고 저장하세요

 

 

답변을 작성하시기 전에 로그인 해주세요.
전체 0
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT