테이블을 마이그레이션하거나, 테스트를 위해서 테이블 내의 데이터를 뻥튀기 시킬 때, 데이터나 테이블을 있는 그대로 복사해야 하는 경우가 있다. 언뜻보면 쉬워보이지만, 막상 하면 잘 짜지지 않는 그 녀석들에 대해 기록해 둔다.
테이블에 있는 데이터 복사
INSERT INTO [복사될 테이블명]
SELECT * FROM [기존 테이블명]
VALUES 구문 대신에 복사할 데이터 테이블을 만드는 쿼리를 입력했다. 이렇게 하면, 2번 행에서 생성된 테이블이 지정된 테이블에 그대로 입력되게 된다. (복사대상의 컬럼이 서로 일치하지 않는다면 오류가 나게 될 것이다)
테이블에 있는 일부 데이터만 복사
INSERT INTO [복사될 테이블명]
SELECT * FROM [기존 테이블명]
WHERE 1=1
복사 대상의 모든 데이터가 아닌 조건에 맞춘 데이터만 복사하고 싶다면 WHERE 절을 이용하면 된다.