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

MySQL에서 varchar 컬럼 길이를 늘리는 방법 – ALTER TABLE MODIFY 활용 가이드

데이터베이스를 운영하다 보면 처음에 설정한 varchar 컬럼의 길이가 부족해지는 경우가 자주 발생합니다. 예를 들어 이름 필드를 varchar(10)으로 만들었는데 더 긴 문자열을 저장해야 한다면, 테이블을 새로 만들 필요 없이 간단한 ALTER 문 하나로 해결할 수 있습니다.

1. 테스트용 테이블 생성하기

먼저 실습에 사용할 테이블을 생성해 보겠습니다. 아래 테이블에는 두 개의 varchar 타입 컬럼이 포함되어 있습니다.

mysql> create table DemoTable
(
    UserId int NOT NULL AUTO_INCREMENT PRIMARY KEY,
    UserFirstName varchar(10),
    UserLastName varchar(20) ,
    UserAge int
);
Query OK, 0 rows affected (0.96 sec)

2. 현재 테이블 구조 확인하기

DESC 명령어를 사용하면 테이블의 구조를 확인할 수 있습니다.

mysql> desc DemoTable;

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

+---------------+-------------+------+-----+---------+----------------+
| Field         | Type        | Null | Key | Default | Extra          |
+---------------+-------------+------+-----+---------+----------------+
| UserId        | int(11)     | NO   | PRI | NULL    | auto_increment |
| UserFirstName | varchar(10) | YES  |     | NULL    |                |
| UserLastName  | varchar(20) | YES  |     | NULL    |                |
| UserAge       | int(11)     | YES  |     | NULL    |                |
+---------------+-------------+------+-----+---------+----------------+
4 rows in set (0.00 sec)

3. ALTER TABLE로 varchar 길이 늘리기

컬럼 길이를 늘리려면 ALTER TABLE ... MODIFY 구문을 사용합니다. 아래 쿼리는 UserFirstName 컬럼을 varchar(10)에서 varchar(40)으로 변경하는 예제입니다.

mysql> alter table DemoTable modify UserFirstName varchar(40);
Query OK, 0 rows affected (0.23 sec)
Records: 0 Duplicates: 0 Warnings: 0

쿼리가 정상적으로 실행되면 'Query OK' 메시지가 출력됩니다. 기존 데이터는 그대로 유지되며, 저장된 값이 새 길이보다 작다면 데이터 손실 없이 안전하게 확장됩니다.

4. 변경 결과 확인하기

DESC 명령어로 테이블 구조를 다시 조회하여 변경 사항을 확인해 보겠습니다.

mysql> desc DemoTable;

UserFirstName 컬럼의 타입이 varchar(10)에서 varchar(40)으로 성공적으로 변경된 것을 확인할 수 있습니다.

+---------------+-------------+------+-----+---------+----------------+
| Field         | Type        | Null | Key | Default | Extra          |
+---------------+-------------+------+-----+---------+----------------+
| UserId        | int(11)     | NO   | PRI | NULL    | auto_increment |
| UserFirstName | varchar(40) | YES  |     | NULL    |                |
| UserLastName  | varchar(20) | YES  |     | NULL    |                |
| UserAge       | int(11)     | YES  |     | NULL    |                |
+---------------+-------------+------+-----+---------+----------------+
4 rows in set (0.00 sec)

정리 및 주의사항

MySQL에서 varchar 컬럼의 길이를 늘리는 방법은 매우 간단합니다. 핵심 문법은 다음과 같습니다.

ALTER TABLE 테이블명 MODIFY 컬럼명 varchar(새로운_길이);

다만 몇 가지 주의할 점이 있습니다. 첫째, 길이를 줄일 때는 기존 데이터가 잘릴 수 있으므로 반드시 백업 후 진행해야 합니다. 둘째, 대용량 테이블의 경우 ALTER 작업 중 잠금(lock)이 발생할 수 있으므로 트래픽이 적은 시간대에 실행하는 것이 좋습니다. 셋째, MySQL 5.6 이상에서는 온라인 DDL 기능을 지원하여 서비스 중단 없이 스키마 변경이 가능한 경우도 많습니다.