본문 바로가기
Development/MySQL

[MySQL] 테이블을 복사해서 생성하기 (Table Copy & Paste)

by 성딱이 2021. 9. 27.
반응형
use DB1 ;

# Table 생성 
# CREATE TABLE `새테이블` LIKE `대상테이블` ; (다른 DB의 테이블 복사해 올 경우 DB를 명시)
CREATE TABLE `DB1`.`new_table` LIKE `DB2`.`target_table` ;

# 생성한 테이블에 내용 복사 (같은 DB내의 테이블 복사 가정)
# INSERT INTO `새테이블` SELECT * FROM `대상테이블` ;
INSERT INTO `new_table` SELECT * FROM `target_table` ;

# 컬럼을 선택하여 복사하고 싶을 땐
# INSERT INTO `새테이블` (`Col1`, `Col2`, `Col3`) SELECT `Col1`, `Col2`, `Col3` FROM `대상테이블` WHERE [조건] ;
INSERT INTO `new_table` (`Col1`, `Col2`, `Col3`) SELECT `Col1`, `Col2`, `Col3` FROM `target_table` WHERE `Col1`='jh' ;

중요한 점은 DB명.테이블 을 사용할 시 하나로 써주는 것이 아닌 ``로 분리를 해줘야 한다는 점이다. (혹은 아예 `를 빼줘야 한다.)

 

예를들어 실행되지 않는 코드는 이렇다.

use DB1 ;

CREATE TABLE `DB1.new_table` LIKE `DB2.target_table` ;

이렇게 쓰면 LIKE 이후에서 DB1내의 `DB2.target_table` 이라는 테이블 명 자체를 찾으므로 쿼리가 실행되지 않는다.

고로 ` 사용을 잘 해줘야 한다.

 

끄읏

 

반응형

댓글