DEV&OPS/Database
MySQL 테이블 복사 (구조 및 데이터)
ALEPH.GEM
2022. 5. 13. 16:08
원본 테이블 구조(스키마)와 같은 새 테이블 생성
CREATE TABLE IF NOT EXISTS 타겟DB.복사테이블 LIKE 원본DB.원본테이블;
원본 테이블에 Primary Key 또는 auto_increment가 설정되어 있으면 복사할 수 없습니다.
원본 테이블 구조(스키마)와 같은 새 테이블을 생성 후 데이터도 함께 복사
CREATE TABLE IF NOT EXISTS 타겟DB.복사테이블 SELECT * FROM 원본DB.원본테이블;
원본 테이블에 Primary Key 또는 auto_increment가 설정되어 있으면 복사할 수 없습니다.
테이블을 생성했던 CREATE 쿼리 보기
SHOW CREATE TABLE 원본DB.테이블이름;
Primary Key나 auto_increment 등 제약사항도 복사하고 싶다면 create 쿼리를 복사하여 해당 쿼리를 이용하여 테이블을 생성 한 뒤 insert select 문으로 데이터를 복사해야 합니다.
이미 같은 구조(스키마)의 테이블이 존재하는 경우 데이터 부분 복사
INSERT INTO 타겟DB.복사테이블(컬럼1, 컬럼2, ...) SELECT 컬럼1, 컬럼2, ... FROM 원본DB.원본테이블
복사 될 테이블에 primary key 또는 auto_increment가 설정되어 있는 경우 중복된 데이터가 있으면 오류가 발생합니다.
콘솔 접속이 가능한 경우 mysqldump 이용 복사
테이블 덤프(테이블을 sql 파일로 변환)
mysqldump -u mysql계정 -p 데이터베이스이름 테이블이름 > 덤프파일이름.sql
덤프된 sql파일을 복원
mysql -u 사용자계정 -p 데이터베이스이름 < 덤프파일이름.sql
728x90