2026, 새로운 도약을 시작합니다.

백업된 데이타베이스의 멤버 데이타를 비교하여 복구하려고 하는데...?? 채택완료

기존의 멤버데이터를 어찌어찌하다 일부 3/2 정도의 회원이 삭제되었습니다.

백업을 해 놓고 해야 하는데 실수로 삭제되었습니다.

그래도 다행스럽게 예전 데이터를 백업 받아놓은게 있더라고요

그래서 phpadmin로 기존데이터를 데이타베이스를 하나 만들어 복구를 했는데...

sunjang -> 현재 운영 되고 있는 데이타베이스

test1 -> 임시로 데이타베이스를 복구한곳 (백업해 둔 데이타베이스)

이렇게 두곳이 있는데 백업해 둔 데이타베이스의 멤버데이타를 현재 운용되고 있는 멤버데이타에 삭제된 부분만 비교해서 복구를 하려고 하는데 어떻게 해야 할까요.?

백업해 둔 데이타 베이스 회원이 약 3만명이상이라서 웹상에서는 복구중 정지할것 같으니 putty 에서 할수 있는 방법 알려주시면 감사하겠습니다

답변 5개

채택된 답변
+20 포인트
insert into sunjang.g5_member ( mb_id, ... mb_10)
select a.mb_id, .. a.mb_10 from test1.g5_member a left join sunjang.g5_member b on a.mb_id=b.mb_id where b.mb_id is null

g5_member의 컬럼 중에서 mb_no만 빼고 컬럼을 다 적으세요.

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

답변에 대한 댓글 8개

전에도 답변을 주셨는데 다시 답변 주셔서 감사합니다.
그런데 어떻게 사용하는지 안되던데요.?
어떻게 사용하는지 알려주시면 감사하겠습니다.
insert into sunjang.g5_member ( mb_id,mb_password,mb_password2,mb_name,mb_nick,mb_nick_date,mb_email,mb_homepage,mb_level,mb_sex,mb_birth,mb_tel,mb_hp,mb_certify,mb_adult,mb_dupinfo,mb_zip1,mb_zip2,mb_addr1,mb_addr2,mb_addr3,mb_addr_jibeon,mb_signature,mb_recommend,mb_point,mb_today_login,mb_login_ip,mb_datetime,mb_ip,mb_leave_date,mb_intercept_date,mb_email_certify,mb_email_certify2,mb_memo,mb_lost_certify,mb_mailling,mb_sms,mb_open,mb_open_date,mb_profile,mb_memo_call,mb_memo_cnt,mb_scrap_cnt,mb_1,mb_2,mb_3,mb_4,mb_5,mb_6,mb_7,mb_8,mb_9.mb_10,google_otp_code)
select a.mb_id, .. a.mb_10 from test1.g5_member a left join sunjang.g5_member b on a.mb_id=b.mb_id where b.mb_id is null

1. 이런식으로 넣으라는 말인가요.?
phpamdin 에서 다 복사해 일일이 적었습니다.


2. 그런데 test1 에 오래전것이라 마지막에 google_otp_code 가 없습니다
제가 google_otp_code 얼마전에 넣었거든요

google_otp_code 를 삭제를 해야 하나요.?
google_otp_code 가 필요하면 넣어야 하고
필요 없으면 빼면 됩니다.
query에서는 양쪽 컬럼이 같게 하는 것이 중요합니다.
최종적으로 알려주신 데로 하면

insert into sunjang.g5_member ( mb_id,mb_password,mb_password2,mb_name,mb_nick,mb_nick_date,mb_email,mb_homepage,mb_level,mb_sex,mb_birth,mb_tel,mb_hp,mb_certify,mb_adult,mb_dupinfo,mb_zip1,mb_zip2,mb_addr1,mb_addr2,mb_addr3,mb_addr_jibeon,mb_signature,mb_recommend,mb_point,mb_today_login,mb_login_ip,mb_datetime,mb_ip,mb_leave_date,mb_intercept_date,mb_email_certify,mb_email_certify2,mb_memo,mb_lost_certify,mb_mailling,mb_sms,mb_open,mb_open_date,mb_profile,mb_memo_call,mb_memo_cnt,mb_scrap_cnt,mb_1,mb_2,mb_3,mb_4,mb_5,mb_6,mb_7,mb_8,mb_9.mb_10)
select a.mb_id,mb_password,mb_password2,mb_name,mb_nick,mb_nick_date,mb_email,mb_homepage,mb_level,mb_sex,mb_birth,mb_tel,mb_hp,mb_certify,mb_adult,mb_dupinfo,mb_zip1,mb_zip2,mb_addr1,mb_addr2,mb_addr3,mb_addr_jibeon,mb_signature,mb_recommend,mb_point,mb_today_login,mb_login_ip,mb_datetime,mb_ip,mb_leave_date,mb_intercept_date,mb_email_certify,mb_email_certify2,mb_memo,mb_lost_certify,mb_mailling,mb_sms,mb_open,mb_open_date,mb_profile,mb_memo_call,mb_memo_cnt,mb_scrap_cnt,mb_1,mb_2,mb_3,mb_4,mb_5,mb_6,mb_7,mb_8,mb_9.mb_10 from test1.g5_member a left join sunjang.g5_member b on a.mb_id=b.mb_id where b.mb_id is null

이렇게 넣으란 말인가요.?
정확히 맞는지 확인해 주시면 감사하겠습니다

그리고

query에서는 양쪽 컬럼이 같게 하는 것이 중요합니다.
이말이 무슨말인지요.?
정확한 것은 한번 실행 보시면 되구요,
"query에서는 양쪽 컬럼이 같게 하는 것이 중요합니다.
이말이 무슨말인지요.?"이 것은
insert 쪽 컬럼과
select 쪽 컬럼이 데이터 타입과 컬럼 순서, 갯수가 같아야 한다는 거죠.
오류메세지가 뜨네요
사진이 댓글쓰기에 안들어가서 답변을 썼습니다 확인해 주시면 감사하겠습니다
엑스엠엘님 알려주신데로 다시 수정을 해서 아래와 같이 수정했습니다

insert into sunjang.g5_member ( mb_id,mb_password,mb_password2,mb_name,mb_nick,mb_nick_date,mb_email,mb_homepage,mb_level,mb_sex,mb_birth,mb_tel,mb_hp,mb_certify,mb_adult,mb_dupinfo,mb_zip1,mb_zip2,mb_addr1,mb_addr2,mb_addr3,mb_addr_jibeon,mb_signature,mb_recommend,mb_point,mb_today_login,mb_login_ip,mb_datetime,mb_ip,mb_leave_date,mb_intercept_date,mb_email_certify,mb_email_certify2,mb_memo,mb_lost_certify,mb_mailling,mb_sms,mb_open,mb_open_date,mb_profile,mb_memo_call,mb_memo_cnt,mb_scrap_cnt,mb_1,mb_2,mb_3,mb_4,mb_5,mb_6,mb_7,mb_8,mb_9.mb_10)
select a.mb_id,a.mb_password,a.mb_password2,a.mb_name,a.mb_nick,a.mb_nick_date,a.mb_email,a.mb_homepage,a.mb_level,a.mb_sex,a.mb_birth,a.mb_tel,a.mb_hp,a.mb_certify,a.mb_adult,a.mb_dupinfo,a.mb_zip1,a.mb_zip2,a.mb_addr1,a.mb_addr2,a.mb_addr3,a.mb_addr_jibeon,a.mb_signature,a.mb_recommend,a.mb_point,a.mb_today_login,a.mb_login_ip,a.mb_datetime,a.mb_ip,a.mb_leave_date,a.mb_intercept_date,a.mb_email_certify,a.mb_email_certify2,a.mb_memo,a.mb_lost_certify,a.mb_mailling,a.mb_sms,a.mb_open,a.mb_open_date,a.mb_profile,a.mb_memo_call,a.mb_memo_cnt,a.mb_scrap_cnt,a.mb_1,a.mb_2,a.mb_3,a.mb_4,a.mb_5,a.mb_6,a.mb_7,a.mb_8,a.mb_9.a.mb_10 from test1.g5_member a left join sunjang.g5_member b on a.mb_id=b.mb_id where b.mb_id is null

그리고 다시 phpmyadmin 에 sunjang 데이타베이스에 들어가서 SQL 탭에 넣고 실행을 누르니 아래와 같이 오류메세지가 나옵니다.?
뭐가 잘못된것인가요.?


오류
정적 분석 :

분석 중에 1개의 오류가 발생했습니다.

예상되지 않은 점(.)입니다. (near "." at position 1178)
SQL 질의: 문서

insert into sunjang.g5_member ( mb_id,mb_password,mb_password2,mb_name,mb_nick,mb_nick_date,mb_email,mb_homepage,mb_level,mb_sex,mb_birth,mb_tel,mb_hp,mb_certify,mb_adult,mb_dupinfo,mb_zip1,mb_zip2,mb_addr1,mb_addr2,mb_addr3,mb_addr_jibeon,mb_signature,mb_recommend,mb_point,mb_today_login,mb_login_ip,mb_datetime,mb_ip,mb_leave_date,mb_intercept_date,mb_email_certify,mb_email_certify2,mb_memo,mb_lost_certify,mb_mailling,mb_sms,mb_open,mb_open_date,mb_profile,mb_memo_call,mb_memo_cnt,mb_scrap_cnt,mb_1,mb_2,mb_3,mb_4,mb_5,mb_6,mb_7,mb_8,mb_9.mb_10) select a.mb_id,a.mb_password,a.mb_password2,a.mb_name,a.mb_nick,a.mb_nick_date,a.mb_email,a.mb_homepage,a.mb_level,a.mb_sex,a.mb_birth,a.mb_tel,a.mb_hp,a.mb_certify,a.mb_adult,a.mb_dupinfo,a.mb_zip1,a.mb_zip2,a.mb_addr1,a.mb_addr2,a.mb_addr3,a.mb_addr_jibeon,a.mb_signature,a.mb_recommend,a.mb_point,a.mb_today_login,a.mb_login_ip,a.mb_datetime,a.mb_ip,a.mb_leave_date,a.mb_intercept_date,a.mb_email_certify,a.mb_email_certify2,a.mb_memo,a.mb_lost_certify,a.mb_mailling,a.mb_sms,a.mb_open,a.mb_open_date,a.mb_profile,a.mb_memo_call,a.mb_memo_cnt,a.mb_scrap_cnt,a.mb_1,a.mb_2,a.mb_3,a.mb_4,a.mb_5,a.mb_6,a.mb_7,a.mb_8,a.mb_9.a.mb_10 from test1.g5_member a left join sunjang.g5_member b on a.mb_id=b.mb_id where b.mb_id is null

MySQL 메시지: 문서

#1064 - 'SQL 구문에 오류가 있습니다.' 에러 같습니다. ('.mb_10 from test1.g5_member a left join sunjang.g5_member b on a.mb_id=b.mb_i...' 명령어 라인 2)
제가 열심히 다시 한번 보니 마지막에 , 이 들어가야 하는데 . 이 들어갔네요
다시 수정하고 넣으니 바로 되네요

정말 감사합니다...
답변 채택했습니다 다시 한번 감사합니다

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

엑스엠앨님 오류메세지가 뜨네요.?

왜 일까요.?

알려주시면 감사하겠습니다

3717403211_1649235428.1843.png

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

답변에 대한 댓글 1개

select a.mb_id,
a.mb_password,
a.mb_password2,
...

이런 식으로 다 a.을 붙여 주어야 합니다.

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

엑스엠엘 님의 답변의 내용을 넣어보았는데 에러가 나오네요

이렇게 사용하는것인가요.?

thumb-3717403211_1649131088.4167_730x464.png

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

답변에 대한 댓글 1개

...
이 아니라
g5_member에 있는 컬럼을 다 적으세요, mb_no 빼고.
당연 순서는 같아야 하구요.

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

마르스컴퍼니 님의 답변을 넣어 보았는데 에러가 나옵니다

이렇게 하는것인지.?

thumb-3717403211_1649131005.8111_730x502.png

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

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

만일의 상황을 대비하여 현 DB 테이블(sunjang.g5_member) 백업 후 진행하시기를 바랍니다.

Copy


insert into sunjang.g5_member

select *

  from test1.g5_member

 where not exists (select 1 from sunjang.g5_member where mb_no = test1.g5_member.mb_no)

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

답변에 대한 댓글 1개

이 소스를 어떻게 사용해야 하나요.?

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

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

로그인
🐛 버그신고