2012-04-04 2 views
1

mysql 덤프를 내보낼 때 모든 테이블 앞에 일부 텍스트를 추가 할 수 있습니까?MySQL 데이터베이스 내보내기에 테이블 이름 앞에

예를 들어 : 테이블이 chapters라는 경우가

+1

덤프 파일을 검색하고 대체 할 수는 없습니까? – liquorvicar

+0

해당 덤프에는 내용도 포함되어 있으며 크기가 매우 큽니다 (대부분의 텍스트 편집기를 사용하지 않습니다). 또한 용어는 콘텐츠에도 존재하기 때문에 단순한 대체가 매우 까다 롭습니다. – kylex

+0

관련 테이블을 복사 한 다음 덤프에서 원래 테이블을 무시하는 방법은 어떻습니까? – liquorvicar

답변

0

old_chapters이 스키마의 복잡도에 따라가되도록 난 당신이 신중하게 제작 된 sed 명령을 사용하여이 작업을 수행 할 수 있습니다 그것에 old_ 씁니다 원하는 모든 테이블 참조를 찾고 "old_"로 테이블 이름을 앞에 둡니다.

예를 들어,이 명령은 스키마와 데이터를 덤프하고 드롭에 old_ 접두사를 추가/잠금뿐만 아니라 테이블 문을 생성/테이블을 변경하고 삽입 문 :

mysqldump your_schema | sed -e 's/DROP TABLE IF EXISTS `/DROP TABLE IF EXISTS `old_/' -e 's/CREATE TABLE `/CREATE TABLE `old_/' -e 's/INSERT INTO `/INSERT INTO `old_/' -e 's/LOCK TABLES `/LOCK TABLES `old_/' -e 's/ALTER TABLE `/ALTER TABLE `old_/' 

그러나, 명령 테이블 참조 다음과 같은 유형의에 대한 테이블 접두사를 추가하지 않습니다

  • 외래 키 제약
  • 조회수
  • TR iggers
  • 저장된 루틴
관련 문제