테스트 사이트 - 개발 중인 베타 버전입니다

게시판 합치는 방법 채택완료

엘지비티 1년 전 조회 1,994

a, b, c 게시판이 있는데 각 게시글을 새로운 d 게시판에 통합하려고 합니다.

 

게시물이 각각 1만건에서 2만건 정도 입니다. 첨부파일은 없습니다.

 

그냥 sql 백업해서 합치면 안될거 같은데요.

 

게시물 순서(시간순) 유지하면서 합치려면 어떻게 해야 할까요?

댓글을 작성하려면 로그인이 필요합니다.

답변 2개

채택된 답변
+20 포인트
1년 전

아래의 내용을 한번 참고해 보세요.

실제 진행전에 테이블을 백업하고 진행을 하시는게 좋을거 같습니다.

 

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';

 

 

 

 

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

1년 전

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

 

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

 

 

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인