Computer >> 컴퓨터 >  >> 프로그래밍 >> MySQL

MySQL에서 테이블이 존재하지 않을 때만 생성하는 방법: CREATE TABLE IF NOT EXISTS 완벽 가이드

MySQL에서 테이블을 생성할 때 이미 같은 이름의 테이블이 존재하면 오류가 발생합니다. 이런 상황을 방지하려면 CREATE TABLE IF NOT EXISTS 구문을 사용하면 됩니다. 이 구문은 테이블이 존재하지 않는 경우에만 새 테이블을 생성하고, 이미 존재한다면 오류 없이 그대로 통과시킵니다.

기본 문법

테이블 존재 여부를 확인하면서 생성하는 기본 문법은 다음과 같습니다.

CREATE TABLE IF NOT EXISTS yourTableName
(
    yourColumnName1 dataType,
    ...
    yourColumnNameN dataType
);

INSERT INTO yourTableName VALUES(yourValue1, ..., yourValueN);

실제 예제로 살펴보기

1단계: 테이블 생성

먼저 IF NOT EXISTS 옵션을 사용해 테이블을 생성해 보겠습니다.

mysql> CREATE TABLE IF NOT EXISTS DemoTable
(
    StudentId int NOT NULL AUTO_INCREMENT PRIMARY KEY,
    StudentSubject varchar(100)
);
Query OK, 0 rows affected (0.60 sec)

DemoTable이라는 테이블이 생성되었으며, 자동 증가하는 기본키인 StudentId와 과목명을 저장하는 StudentSubject 컬럼으로 구성되어 있습니다.

2단계: 데이터 삽입

INSERT 명령어를 사용해 테이블에 레코드를 추가합니다.

mysql> INSERT INTO DemoTable(StudentSubject) VALUES('Java');
Query OK, 1 row affected (0.24 sec)

mysql> INSERT INTO DemoTable(StudentSubject) VALUES('MySQL');
Query OK, 1 row affected (0.14 sec)

mysql> INSERT INTO DemoTable(StudentSubject) VALUES('C');
Query OK, 1 row affected (0.23 sec)

StudentId 컬럼은 AUTO_INCREMENT로 설정되어 있으므로, 값을 직접 지정하지 않아도 1부터 순차적으로 자동 입력됩니다.

3단계: 결과 확인

SELECT 문으로 테이블의 모든 레코드를 조회합니다.

mysql> SELECT * FROM DemoTable;

실행 결과는 다음과 같습니다.

+-----------+----------------+
| StudentId | StudentSubject |
+-----------+----------------+
|         1 | Java           |
|         2 | MySQL          |
|         3 | C              |
+-----------+----------------+
3 rows in set (0.00 sec)

핵심 정리

CREATE TABLE IF NOT EXISTS는 스크립트를 여러 번 실행해도 안전하게 동작하도록 만들어 주는 유용한 구문입니다. 특히 배포 스크립트나 초기화 쿼리를 작성할 때, 테이블 중복 생성 오류를 방지하고 싶다면 반드시 이 옵션을 활용하는 것이 좋습니다.