[SQL] 회원 DB를 다른사이트로 옮길려고 합니다.
본문
둘다 그누보드 입니다. 회원db만 옮기고 싶어서요.
phpmyadmin 에서 내보내기를 해서
새로운 사이트에 넣을려고 하니
mb_no 때문에 중복이 되는 부분을 내보내기 할때 설정을 어떻게 해줄순 없을까요?
1~1000명의 회원을 빼올 때 이미 1번부터 1000번까지 번호가 부여되어있어서
다른 사이트에 넣을려고 하면 1~1000번은 비워놔야하기 때문에
초반에 회원이 없을때야 어느정도 삭제하고 넣으면 되겠지만
사이트에 이미 회원이 어느정도 있는 상태에서는 덮어씌우기가 힘들어져서요ㅠ
저 부여된 번호가 애초에 AUTO_INCREMENT 로 채워진건데 mb_no 부분을 제외하고 내보낸뒤에
가져오기 할때 mo_no부분도 그 사이트의 AUTO_INCREMENT 로 채워지게 할순 없을까요??
답변 4
그럴경우 내보내기한 DB에 수동으로 입력해 주셔야 합니다.
기존 db의 보통 1 번의 경우 관리자 이니 내려받은 db든 기존의 db든
마지막 번호 다음 순서부터 하나씩 증가해서 입력 하시고 서버에 적용하시면 됩니다.
요즘 에디터나 엑셀 같은 프로그렘에서 번호 수정 하는건 한번에 가능하니 그리 어렵지 않을 겁니다.
현재의 member 테이블에서 아래의 쿼리를 실행 후에 백업 하시면 됩니다.
update g5_member set mb_no=mb_no+1000
혹시 원상복구 해야한다면 다시 아래 쿼리를 실행하면 됩니다.
update g5_member set mb_no=mb_no-1000
해당 상황이라면 별도의 테이블로 g5_member_tmp 라든지 만드셔서 인서트 하시고
php 쿼리로 읽어서 인서트 하시면 됩니다.
A그누보드의
g5_member 테이블명을 변경합니다.
g5_memberA
B그누보드의
g5_member 의 백업본을
A그누보드에 생성(추가) 합니다.
insert int g5_member
(mb_no를 제외한 모든 필드를 명시합니다.)
select
mb_no를 제외한 모든 필드를 명시합니다
from g5_memberA a
where not exists(select 'x' from g5_member b where a.mb_id = b.mb_id)
// id가 중복된 회원은 제외합니다. (별도 작업을 해야겠죠)
위 내용으로 소화가 안되면 제작의뢰를 하셔야죠