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

MySQL에서 행을 열의 기본값으로 되돌리는 방법 완벽 가이드

MySQL에서 특정 행의 값을 해당 열의 기본값으로 되돌려야 하는 경우가 종종 있습니다. 이럴 때 UPDATE 문과 함께 DEFAULT 키워드를 사용하면 아주 간단하게 처리할 수 있습니다. 이 글에서는 실제 예제를 통해 그 방법을 단계별로 자세히 살펴보겠습니다.

1. 데모 테이블 생성하기

먼저 연습용 데모 테이블을 생성합니다.

mysql> create table defaultDemo
    -> (
    -> Id int
    -> );
Query OK, 0 rows affected (0.48 sec)

2. 샘플 데이터 삽입하기

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

mysql> insert into defaultDemo values(10);
Query OK, 1 row affected (0.25 sec)
mysql> insert into defaultDemo values(20);
Query OK, 1 row affected (0.13 sec)
mysql> insert into defaultDemo values(30);
Query OK, 1 row affected (0.14 sec)
mysql> insert into defaultDemo values(40);
Query OK, 1 row affected (0.11 sec)
mysql> insert into defaultDemo values(80);
Query OK, 1 row affected (0.18 sec)
mysql> insert into defaultDemo values(90);
Query OK, 1 row affected (0.14 sec)
mysql> insert into defaultDemo values(100);
Query OK, 1 row affected (0.10 sec)

3. 현재 데이터 확인하기

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

mysql> select *from defaultDemo;

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

+------+
| Id   |
+------+
| 10   |
| 20   |
| 30   |
| 40   |
| 80   |
| 90   |
| 100  |
+------+
7 rows in set (0.00 sec)

4. DEFAULT 키워드로 행 되돌리기

이제 핵심인 쿼리입니다. 다음과 같이 UPDATE 문에서 DEFAULT 키워드를 사용하면 조건에 맞는 행의 값을 열의 기본값으로 되돌릴 수 있습니다.

mysql> update defaultDemo set Id=default where Id > 45;
Query OK, 3 rows affected (0.39 sec)
Rows matched: 3 Changed: 3 Warnings: 0

위 쿼리는 Id 값이 45보다 큰 세 개의 행(80, 90, 100)을 대상으로 실행됩니다.

5. 변경 결과 확인하기

테이블을 다시 조회하면 해당 행들이 기본값으로 변경된 것을 확인할 수 있습니다.

mysql> select *from defaultDemo;

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

+------+
| Id   |
+------+
| 10   |
| 20   |
| 30   |
| 40   |
| NULL |
| NULL |
| NULL |
+------+
7 rows in set (0.00 sec)

참고 사항: 기본값이 없는 열의 동작

열에 별도의 기본값이 정의되어 있지 않으면 DEFAULT 키워드는 해당 값을 NULL로 설정합니다. 위 예제에서 Id 열에는 기본값이 정의되어 있지 않았기 때문에 NULL이 저장된 것입니다.

만약 NULL 대신 특정 기본값을 적용하고 싶다면, 먼저 ALTER TABLE 문으로 열의 기본값을 정의한 후 DEFAULT 키워드를 사용하면 됩니다.

mysql> alter table defaultDemo modify Id int default 0;

이렇게 기본값을 0으로 설정해 두면, 이후 update ... set Id=default 쿼리를 실행할 때 해당 행의 값이 0으로 변경됩니다. 상황에 맞게 기본값을 활용하면 데이터 초기화 작업을 훨씬 깔끔하게 처리할 수 있습니다.