phpMyAdmin으로 내보낸 백업 데이터를 가져올 수 없습니다! ?
3033 단어 SQLPHPphpMyadmin
가져올 수 없음…
삭제 기능을 개수하고 있는 도중, 실수로 데이타베이스의 어떤 테이블의 데이터가 확실히 절반 이상 사라져 버렸으므로 내보낸 두 테이블의 데이터를 임포트 해 실행 취소하려고 했습니다.
·
·
·
할 수 없다...
왜...
sample.sql
1054: Unknown column 'カラム名' in 'field list'
토카
sample.sql
#1062 - Duplicate entry '1' for key 'PRIMARY'
라든지 에러가 나오고, 무엇을 해도 어느 쪽의 에러가 나와 일향으로 임포트 할 수 있는 생각이 들지 않는다.
원래 내보내기 시점에 필요한 설정이 없었기 때문에!
네. 이 문제가 발생한 후 조사하고 알았지만,
내보내기 옵션으로
"DROP TABLE/VIEW/PROCEDURE/FUNCTION/EVENT 명령 추가"
에 체크를 넣지 않으면 오류가 나오는 경우가 있는 것 같네요.
게다가 디폴트에서는 체크가 들어 있지 않은 때였다.
에러 나온다면 왜 디폴트로 체크 넣어주지 않구나… 뭔가 이유가 있겠지만.
상당한 사이트에서 내보내는 방법 보았을 때 이런 일을 쓰지 않았기 때문에 요주의 네요.
게다가 지금까지 이런 설정 모르고 서버의 이사도 하고 있었는데 에러 나온 적이 없었기 때문에 잊을 것 같아…
내보내기 절차
1. "내보내기 방법"에서 세부 사항을 선택하고 내보낼 테이블을 선택합니다.
Mac의 사람은 command를 누르면서 복수 선택할 수 있어요.
제 경우에는 관리가 다소 어려워 보이기 때문에 테이블별로 내보내고 있습니다.
2. '생성 옵션'의 'DROP TABLE / VIEW / PROCEDURE / FUNCTION / EVENT 명령 추가'에 확인
「포맷 특유의 옵션」은 「구조와 데이터」에 체크군요.
※다른 테이블로 가져오려고 해도 같은 이름의 테이블로 가져옵니다.
→테스트용으로 복제해 이름을 바꾸어 거기로 임포트 하려고 하면 복제원의 테이블에 임포트 되어 버렸다. (테스트용으로 만들었던 다른 DB로 했으니까 문제 없었지만)
SQL로 삽입
그러나 이번에는 백업으로 내보낸 데이터.
당연히 원래의 데이터는 이제 실수로 지워 버린 상태의 것 밖에 없기 때문에 다시 내보내는 것은 할 수 없다.
어떻게든 이 백업 데이터를 임포트하는 방법은 없을까 생각했지만, 결국 구그라고도 몰랐기 때문에 SQL로 인서트 하기로 했습니다.
1. SQL 화면에서 'INSERT'를 클릭하여 INSERT 문을 설정합니다.
2. 앞서 'VALUES' 뒤에 있는 (...)에 내보낸 데이터를 복사하여 실행
내보낸 sql의 데이터를 텍스트 에디터로 열면 서버의 정보라든지 테이블의 구조라든지가 들어가 있지만, 이 부분보다 아래로부터 INSERT문이 시작되고 있다.
이 INSERT문의 「VALUES」이하의 (…)를 copipe 해, 1.의 같은 개소에 copipe 해 실행하면 OK! (1.에서 선택한 부분)
sample.sql
INSERT INTO `sample_table`(`id`, `name`, `color`, `illust`, `position`) VALUES (…)
/*1行分なら最後の「;」は不要っぽい*/
여러 줄 삽입하는 경우
sample.sql
INSERT INTO `sample_table`(`id`, `name`, `color`, `illust`, `position`) VALUES (…),(…),(…),(…),(…),(…),(…),(…);
/*複数行の場合は行ごとにカンマ「,」区切って、最後に「;」をつける*/
행수가 많으면 INSERT문이 여러 번 나누어 쓰여져 있다고 생각하므로 INSERT문의 수만큼 위의 순서를 반복해 넣으면 좋다고 생각합니다.
INSERT INTO로부터 전부 copipe 해 넣으면 좋다고 생각할지도 모릅니다만, 해 보면 최초의 에러 1054가 나올 수 없었습니다…
SQL도 phpMyAdmin도 아직 잘 모르기 때문에 망비록적인 느낌으로 썼습니다만, 보다 잘 이해할 수 있게 되면 알기 쉬운 기사로 하고 싶습니다.
Reference
이 문제에 관하여(phpMyAdmin으로 내보낸 백업 데이터를 가져올 수 없습니다! ?), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/REAS_7/items/a3469e18f4b3b12c649e텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)