2011-03-29 2 views
49

삽입 문에서 열 이름을 사용하여 mysqldump를 백업하도록 지시하려면 어떻게합니까? 내 경우
나는하지 않았다 정상적인 삽입 SQL의이Mysqldump : 백업 할 때 삽입에 대한 열 이름을 생성하십시오.

LOCK TABLES `users` WRITE; 
/*!40000 ALTER TABLE `users` 
INSERT INTO `users` VALUES (1 

구조의 결과로 백업 할 수 있습니다.

이제 은 사용자의 스키마에서 열을 제거했습니다. 이 후 백업 SQL을 실행할 때 열 번호 불일치 오류이 발생합니다.

이 문제를 해결하려면 mysqldump가 열 이름을 쓰도록 지시해야하나요? 여기 내가 더 넓은 차원에서 지금

mysqldump --host=${dbserver} --user=${dbusername} --password=${dbpassword} \ 
      --no-create-db --no-create-info --extended-insert --single-transaction \ 
      --compress tablename 

그것을 어떻게 이러한 스키마 변경을 관리 할 수있는 가장 좋은 방법은 무엇인가?

+1

PARAMS mysqldump는 명령에서 사용 --complete-insert? 열을 삭제 한 후에는 지정된 필드가있는 쿼리조차 올바르지 않습니다. – zerkms

답변

113

명시 적으로 지정된 필드가 당신을 도울 것입니다 방법

+6

이것이 왜 mysqldump의 기본 동작이되어서는 안될까? – paradiso

+4

@paradiso mysqldump는 백업에 많이 사용되기 때문에 가능하다고 생각합니다. – Cacovsky

+6

@paradiso 또한 mysqldump는 기본적으로 구조와 데이터를 덤프하므로 열 이름 정보를 쓸모 없게 만든다. 열 이름을 지정하면 데이터를 추출한 테이블과 구조가 다를 수있는 테이블에 값을로드 할 때 유용합니다. – Ninj