[MySql] 테이블 내용 복사하기(인덱스 키 추가하기)
테이블 A에 데이타가 엄청 많이 들어 있는경우 index 키를 추가하면 시간이 엄청 많이 걸린다.(몇시간 이상 걸리는 경우가 많음)
이런경우
테이블 A의 Create Script로 B를 새로 생성하고 Index 키를 추가한다음 테이블 A의 내용을 테이블 B에 복사하는 과정을 거치면 바로바로 생성이 된다.(1초 이내 ^.^)
B를 다시 A로 대체해야 하는 경우 테이블 A를 삭제하고 테이블 B를 A로 이름을 변경하면 쉽게 해결된다.
step 1 : 복사할 칼럼을 일일이 타이핑하거나 칼럼 한개씩 복사 붙이기 하기보다는 아래처럼 해서 칼럼을 복사한다.
SELECT group_concat(column_name) FROM information_schema.columns WHERE table_schema = '데이타베이스 이름' AND table_name = '테이블 A'
복사한 칼럼을 ColumnComma라고 하면
step 2 : 쿼리를 이용하여 데이타를 복사한다.
INSERT INTO 테이블_B ( ColumnComma )
SELECT ColumnComma FROM 테이블_A
^.^