데이터베이스에서 한 테이블의 구조나 데이터를 다른 테이블로 복사하는 작업은 여러 상황에서 유용하게 사용됩니다
테이블의 구조만을 복사하거나. 구조와 테이터 모두를 복사할 수 있습니다.
1.테이블 구조만 복사하기
더보기
테이블의 구조만을 새로운 테이블로 복사하고자 할 때, 데이터는 복사하지 않고 구조만 생성합니다.
create table 새_테이블
as select * from 기존_테이블 where 1=0;
-- as 는 create table 과 secelt 사이를 연결하는 역활을 합니다.
-- 즉, select 쿼리의 결과(컬럼 구도와 데이터)를 새 테이블(새_테이블)의 정의로 사용하도록 사용하도록
지시 합니다.
-- 테스트
create table new_student
as select * from tb_student WHERE 1= 0;
select * from new_student;
이 쿼리는 기존 테이블의 모든 컬럼을 선택하지만, WHERE 1 = 0조건 때문에 어떠한 데이터도 가져오지 않습니다.
결과적으로 컬럼 구조만 복제된 새 테이블이 생성됩니다.
더보기
2.테이블 구조와 데이터 모두 복사하기
테이블의 구조와 함께 데이터도 새로운 테이블로 복사하려면 다음 쿼리를 사용합니다.
create table 새_테이블
as select * from 기존_테이블;
-- 테스트
create table new_student2
as select * from tb_student ;
select * from new student2;
제약 조건(기본 키, 외래키 , 인덱스,트리거 등)은 복사되지 않습니다. 필요 시 수동으로 추가해야 합니다.
'MySQL' 카테고리의 다른 글
(DB) SQL 쿼리의 일반적인 처리 순서 - 23 (0) | 2025.05.16 |
---|---|
(GB) GROUP BY 와 HAVING 절 - 22 (0) | 2025.05.16 |
(DB) 트랜잭션 이란 & (COMMIT,ROLLBACK) -19 (0) | 2025.05.16 |
(DB) MySQL 별칭, 변수 선언, IF 문 - 18 (0) | 2025.05.16 |
(DB)MySQL JOIN - 17 (0) | 2025.05.14 |