2011-08-05 5 views
0

테이블이 있습니다 - customers_old. 나는이 테이블의 모든 데이터를 복사하려고하므로 mysqldump를 사용할 것이다.mysql 백업 및 다른 열 이름이있는 테이블로 복원

데이터를 customers_new 테이블로 복원해야하는데, customers_old 테이블과 다른 컬럼 이름이 있습니다.

어떻게하면됩니까?

INSERT..SELECT는 수동으로 각 행을 복사하기위한 것입니까?

는 친절하게 당신은 당신의 SQL 덤프 파일의 열 및 테이블 이름을 편집하거나, 이전 테이블에서 INSERT SELECT를 다음 새 테이블을 가져 할 수있는 하나

감사

답변

1

당신은 간단한 클릭 유도 문안을 함께 할 수있는 작업 (표 AS 작성) : 이전 열 별명으로

CREATE TABLE customers_new AS SELECT col1 AS new_col1, col2 AS new_col2 FROM customers_old 

을 당신은 열 이름을 변경할 수 있습니다 새 테이블에. 새 테이블로 http://dev.mysql.com/doc/refman/5.5/en/create-table-select.html

0

을 조언한다.

0

수동으로 덤프 파일을 해킹하여 거기에있는 열 이름을 변경하지 않는 한 직접이 작업을 수행 할 수 없습니다. 하나의 옵션은 덤프를 임시 데이터베이스/테이블에로드 한 다음 ALTER TABLE 쿼리를 수행하여 원하는대로 열의 이름을 바꾸는 것입니다. 또는 INSERT/SELECT를 수행 할 수 있지만 데이터가 두 배로 늘어납니다 (이름이 바뀐 테이블/필드 + 이전 원본 테이블/필드).

+0

알터 테이블 데이터를 복사하고 당신이 생각하는 것보다 그 접근 방식에서 적은 차이가 그래서 다음, 이전 테이블을 삭제합니다

참조하십시오. 데이터 유형을 변경하는 경우에만 – Johan

+0

을 입력하십시오. 컬럼의 이름을 바꾸는 것은 그렇게하지 않습니다. –

+0

나는 덤프 파일을 해킹하는 것이 그때가는 길이라고 생각한다. 일단 내가 뭔가를 작동하면 게시 할 것입니다 – kelly

2

PMV의 대답에 확장하려면 :

INSERT INTO newtable (column1_new, column2_new, ...) 
    SELECT column1_old, column2_old FROM oldtable