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

MySQL에서 컬럼 기본값을 수정하는 방법 (ALTER TABLE 활용법)

MySQL에서 컬럼 기본값 수정하기

MySQL에서는 ALTER TABLE 문을 사용하여 기존 테이블의 컬럼 기본값(DEFAULT)을 손쉽게 변경할 수 있습니다. 이 글에서는 실제 예제를 통해 그 과정을 단계별로 살펴보겠습니다.

1단계: 테이블 생성

먼저 기본값이 설정된 테이블을 생성합니다.

mysql> create table DemoTable
(
    UserId int NOT NULL AUTO_INCREMENT PRIMARY KEY,
    UserName varchar(20) DEFAULT 'John'
);
Query OK, 0 rows affected (0.76 sec)

2단계: 테이블 구조 확인

DESC 명령어로 테이블 구조를 확인해 보겠습니다.

mysql> desc DemoTable;

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

+----------+-------------+------+-----+---------+----------------+
| Field    | Type        | Null | Key | Default | Extra          |
+----------+-------------+------+-----+---------+----------------+
| UserId   | int(11)     | NO   | PRI | NULL    | auto_increment |
| UserName | varchar(20) | YES  |     | John    |                |
+----------+-------------+------+-----+---------+----------------+
2 rows in set (0.00 sec)

UserName 컬럼의 기본값이 'John'으로 설정되어 있는 것을 확인할 수 있습니다.

3단계: 레코드 삽입 및 확인

INSERT 명령으로 값을 지정하지 않은 레코드를 삽입해 보겠습니다.

mysql> insert into DemoTable values();
Query OK, 1 row affected (0.17 sec)

SELECT 문으로 전체 레코드를 조회합니다.

mysql> select *from DemoTable;
+--------+----------+
| UserId | UserName |
+--------+----------+
| 1      | John     |
+--------+----------+
1 row in set (0.00 sec)

이름을 지정하지 않았기 때문에 기본값인 'John'이 자동으로 저장된 것을 볼 수 있습니다.

4단계: ALTER TABLE로 기본값 변경

이제 ALTER TABLE ... MODIFY 문을 사용하여 UserName 컬럼의 기본값을 'Chris'로 변경하겠습니다.

mysql> alter table DemoTable modify UserName varchar(20) DEFAULT 'Chris';
Query OK, 0 rows affected (0.19 sec)
Records: 0 Duplicates: 0 Warnings: 0

주의할 점은 MODIFY 절을 사용할 때 컬럼의 데이터 타입까지 함께 명시해야 한다는 것입니다.

5단계: 변경 결과 확인

다시 테이블 구조를 확인해 보겠습니다.

mysql> desc DemoTable;
+----------+-------------+------+-----+---------+----------------+
| Field    | Type        | Null | Key | Default | Extra          |
+----------+-------------+------+-----+---------+----------------+
| UserId   | int(11)     | NO   | PRI | NULL    | auto_increment |
| UserName | varchar(20) | YES  |     | Chris   |                |
+----------+-------------+------+-----+---------+----------------+
2 rows in set (0.00 sec)

UserName 컬럼의 Default 값이 'Chris'로 성공적으로 변경되었습니다.

6단계: 새로운 기본값 동작 검증

변경 후 새로운 레코드를 삽입하면 어떻게 되는지 확인해 보겠습니다. 이름을 지정하지 않으면 새로운 기본값인 'Chris'가 자동으로 추가됩니다.

mysql> insert into DemoTable values();
Query OK, 1 row affected (0.11 sec)

SELECT 문으로 전체 레코드를 조회합니다.

mysql> select *from DemoTable;
+--------+----------+
| UserId | UserName |
+--------+----------+
| 1      | John     |
| 2      | Chris    |
+--------+----------+
2 rows in set (0.00 sec)

새로 삽입된 2번 레코드에는 이름이 지정되지 않았기 때문에 새로운 기본값인 'Chris'가 자동으로 저장되었습니다. 반면 기존 1번 레코드의 값('John')은 변경되지 않고 그대로 유지됩니다.

마무리 정리

MySQL에서 컬럼 기본값을 수정하려면 다음 형식의 쿼리를 사용하면 됩니다.

ALTER TABLE 테이블명 MODIFY 컬럼명 데이터타입 DEFAULT '새기본값';

기억해야 할 핵심 포인트는 두 가지입니다. 첫째, MODIFY 절 사용 시 반드시 데이터 타입을 함께 작성해야 하며, 둘째, 기본값 변경은 앞으로 삽입되는 레코드에만 적용되고 이미 저장된 기존 데이터에는 영향을 주지 않는다는 점입니다.