...
테이블 복사
테이블을 고대로 복사해서 사용할 필요성이 생겼을때 어떠한 방법으로 복사할수 있는지 알아보는 시간을 가져보자.
테이블 구조 복사
- 기존 테이블의 필드 설정 그대로 복사 된다.
- 단, 기존 테이블에 'Primary Key' 또는 'auto_increment' 가 설정 되어 있으면 복사 할 수 없음.
Create Table new_table like old_table
Create Table IF NOT EXISTS new_table like old_table -- (new_table 이 없으면 복사)
테이블 데이터 복사
- 대상 테이블의 데이터만 복사하는 경우
- 대상 테이블의 컬럼 중에 'auto_increment' 설정 이 된 컬럼이 있을 경우 해당 컬럼에 데이터 입력시 중복된 데이터가 있으면 오류 발생.
insert into 테이블명1 (select * from 테이블명2)
-- value()대신 서브쿼리가 들어갔다고 생각하면 된다.
Insert Into destination_table (column_a, column_b) (select a, b from source_table)
-- 원하는 필드의 부분 데이터만 복사가 가능
테이블 구조와 데이터 복사
- 테이블의 구조와 함께 데이터도 함께 복사가 된다.
- 기존 테이블에 'Primary Key' 또는 'auto_increment' 가 설정 되어 있으면 해당 설정은 적용 되지 않고 값만 복사 됨
create table buyTbl2 (select * from buyTbl) -- 서브쿼리를 쓰거나
create table buyTbl2 as select * from buyTbl -- 괄호 대신 as 써도 된다
테이블 생성 쿼리 얻기
- 테이블을 복사하는데 있어 섬세하게 부분 수정이 필요한 경우, 아예 복사할 테이블 구조를 생성하는 쿼리를 얻을 수 있다.
SHOW CREATE TABLE 대상테이블명; -- 실행하면 결과로 create table `대상테이블명` 쿼리문을 얻을 수 있다
인용한 부분에 있어 만일 누락된 출처가 있다면 반드시 알려주시면 감사하겠습니다
이 글이 좋으셨다면 구독 & 좋아요
여러분의 구독과 좋아요는
저자에게 큰 힘이 됩니다.