[MySQL] 테이블 복사하는 방법 (DDL, `LIKE`)

2024. 7. 28. 14:30·DB

기존 데이터베이스 테이블에 있는 데이터를 활용한 테스트를 진행하고자, 테이블 복사에 대한 방법을 찾아보고 정리했다.

 

 

1. 테이블 구조 복사

기존 테이블의 생성 구문을 확인한다.

SHOW CREATE TABLE existing_table;

 

 

2. 새 테이블 생성

위에서 확인한 생성 구문에서 테이블명만 바꾸고 실행한다.

 

 

3. 데이터 복사

INSERT INTO new_table SELECT * FROM existing_table;

 

 


 

번외.

테이블 복사에 관해 찾아보던 중, 평소 즐겨보던 블로그에서 `LIKE`를 활용한 테이블 구조 복사는 'PK', 'Auto increment'와 같은 설정은 복사할 수 없다는 글을 보게 되었다. "왜 `LIKE`는 위 설정을 복사할 수 없을까?" 하는 물음에 `LIKE`에 대한 MySQL, W3School과 같은 래퍼런스들도 찾아봤지만 정규표현식에 대한 비교 설명만 볼 수 있었다. 따라서 직접 테스트를 진행해보았고, `LIKE`를 통한 테이블 구조 복사 또한 'PK', 'Auto increment'와 같은 설정을 그대로 복사하는 것을 확인할 수 있었다.

 

 

1) 학생 테이블 생성

CREATE TABLE students (
    student_id INT AUTO_INCREMENT PRIMARY KEY,   -- 학생 ID, 기본 키
    name VARCHAR(100) NOT NULL,                  -- 학생 이름
    birth_date DATE NOT NULL,                    -- 생년월일
    phone_number VARCHAR(15),                    -- 전화번호
    email VARCHAR(100) NOT NULL UNIQUE           -- 이메일, 유니크 키
);

 

 

2) dummy 데이터 삽입

INSERT INTO students (name, birth_date, phone_number, email) VALUES
('홍길동', '2000-01-15', '010-1234-5678', 'honggildong@example.com'),
('김영희', '1999-02-22', '010-2345-6789', 'kimyounghee@example.com'),
('이철수', '2001-03-10', '010-3456-7890', 'leechulsoo@example.com'),
('박지민', '2000-04-05', '010-4567-8901', 'parkjimin@example.com'),
('최민수', '1998-05-30', '010-5678-9012', 'choiminsu@example.com'),
('정수빈', '2002-06-18', '010-6789-0123', 'jeongsubin@example.com'),
('한지민', '1997-07-25', '010-7890-1234', 'hanjimin@example.com'),
('김다', '2001-08-14', '010-8901-2345', 'osehun@example.com'),
('임수정', '2000-09-09', '010-9012-3456', 'imsujeong@example.com'),
('배수진', '1999-10-20', '010-0123-4567', 'baesujin@example.com');

 

 

3) 테이블 구조 복사

CREATE TABLE new_students LIKE students;

 

 

4) 데이터 복사

INSERT INTO new_students SELECT * FROM students;

 

students 스키마(좌) / new_students 스키마(우)

 

 


 

참고문헌.

https://javaoop.tistory.com/94

 

https://inpa.tistory.com/entry/MYSQL-%F0%9F%93%9A-%ED%85%8C%EC%9D%B4%EB%B8%94-%EB%B3%B5%EC%82%AC%ED%95%98%EB%8A%94-4%EA%B0%80%EC%A7%80-%EB%B0%A9%EB%B2%95-%EC%A0%95%EB%A6%AC

 

https://dev.mysql.com/doc/refman/8.4/en/pattern-matching.html

 

https://www.w3schools.com/mysql/mysql_like.asp

 

저작자표시 (새창열림)

'DB' 카테고리의 다른 글

[DB] 게시글 - 파일 테이블 설계  (0) 2024.12.22
[MySQL] View Processing Alogrighms (MERGE vs. TEMPTABLE)  (3) 2024.10.11
[MySQL] Partition 3. DATE 기반 월별 파티션 구현  (0) 2024.08.05
[MySQL] Partition 2. 적용하기 전 개념 정리  (0) 2024.08.02
[MySQL] Partition 1. 테이블 수동 분할과 파티셔닝 (+. 샤딩 / 래플리케이션)  (0) 2024.07.30
'DB' 카테고리의 다른 글
  • [MySQL] View Processing Alogrighms (MERGE vs. TEMPTABLE)
  • [MySQL] Partition 3. DATE 기반 월별 파티션 구현
  • [MySQL] Partition 2. 적용하기 전 개념 정리
  • [MySQL] Partition 1. 테이블 수동 분할과 파티셔닝 (+. 샤딩 / 래플리케이션)
wch_t
wch_t
  • wch_t
    끄적끄적(TIL)
    wch_t
  • 글쓰기 관리
  • 전체
    오늘
    어제
    • 분류 전체보기 (172)
      • Architecture (0)
      • Algorithm (67)
        • Math (5)
        • Simulation (1)
        • Data Structure (4)
        • DP (7)
        • Brute Fource (10)
        • Binary Search (6)
        • Greedy (2)
        • Graph (11)
        • Mst (1)
        • Shortest path (10)
        • Two Pointer (1)
        • Tsp (3)
        • Union Find (2)
        • Mitm (1)
      • CS (2)
        • 데이터베이스 (5)
        • 네트워크 (5)
      • DB (6)
      • DevOps (17)
        • AWS (9)
        • Docker (1)
        • CI-CD (5)
      • Error (1)
      • Project (0)
        • kotrip (0)
      • Spring (59)
        • 끄적끄적 (5)
        • 기본 (9)
        • MVC 1 (7)
        • MVC 2 (11)
        • ORM (8)
        • JPA 1 (7)
        • JPA 2 (5)
        • Spring Data Jpa (7)
      • Test (2)
      • TIL (7)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    Sxssf
    Merge
    spring-cloud-starter-bootstrap
    form_post
    애플
    spring-cloud-starter-aws-secrets-manager-config
    apache poi
    TempTable
    docker
    response_mode
    백준 17289 파이썬
    docker: not found
    view algorithm
    Jenkins
    scope
    백준 17299 파이썬
    aws secrets manager
    백준 3015 파이썬
  • 최근 댓글

  • hELLO· Designed By정상우.v4.10.3
wch_t
[MySQL] 테이블 복사하는 방법 (DDL, `LIKE`)
상단으로

티스토리툴바