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

MySQL에서 컬럼 크기 늘리기: ALTER TABLE로 열 크기 변경하는 방법

MySQL에서 기존 테이블의 컬럼(열) 크기를 늘려야 하는 경우가 자주 발생합니다. 예를 들어 varchar(5)로 설정된 컬럼에 더 긴 문자열을 저장해야 할 때, 컬럼 크기를 변경하지 않으면 데이터 입력 오류가 발생합니다. 이럴 때 ALTER 명령어를 사용하면 간단하게 해결할 수 있습니다.

컬럼 크기 변경 기본 문법

컬럼 크기를 업데이트하려면 다음과 같은 ALTER TABLE ... CHANGE 구문을 사용합니다.

ALTER TABLE 테이블이름 CHANGE 컬럼이름 컬럼이름 데이터타입;

여기서 주의할 점은 컬럼 이름을 두 번 작성해야 한다는 것입니다. 첫 번째는 현재 컬럼 이름, 두 번째는 새로 지정할 컬럼 이름입니다. 이름을 그대로 유지하면서 크기만 변경하는 경우에도 두 번 모두 동일한 이름을 적어주어야 합니다.

예제 테이블 생성하기

실습을 위해 먼저 테이블을 하나 만들어 보겠습니다.

mysql> create table DataTruncated
   -> (
   -> id int,
   -> Name varchar(5)
   -> );
Query OK, 0 rows affected (0.64 sec)

위 테이블의 'Name' 컬럼은 크기가 5로 설정되어 있습니다. 따라서 5자를 초과하는 문자열을 입력하면 MySQL은 아래와 같은 오류를 반환합니다.

크기 초과 시 발생하는 오류

mysql> insert into DataTruncated values(101,'JohnSmith');
ERROR 1406 (22001): Data too long for column 'Name' at row 1

'JohnSmith'는 9글자이므로 varchar(5) 범위를 초과하여 ERROR 1406 (Data too long) 오류가 발생했습니다.

ALTER 명령으로 컬럼 크기 늘리기

이제 'Name' 컬럼의 크기를 5에서 200으로 늘려보겠습니다.

mysql> alter table DataTruncated change Name Name varchar(200);
Query OK, 0 rows affected (2.01 sec)
Records: 0 Duplicates: 0 Warnings: 0

명령이 성공적으로 실행되었습니다. 이제 동일한 레코드를 다시 삽입해 보겠습니다.

mysql> insert into DataTruncated values(101,'JohnSmith');
Query OK, 1 row affected (0.11 sec)

컬럼 크기를 늘렸기 때문에 이번에는 오류 없이 정상적으로 데이터가 입력된 것을 확인할 수 있습니다.

결과 확인하기

마지막으로 SELECT 쿼리로 저장된 데이터를 조회해 보겠습니다.

mysql> select * from DataTruncated;

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

+------+-----------+
| id   | Name      |
+------+-----------+
| 101  | JohnSmith |
+------+-----------+
1 row in set (0.00 sec)

정리

MySQL에서 컬럼 크기를 늘리는 방법은 매우 간단합니다. ALTER TABLE ... CHANGE 구문을 사용하면 기존 데이터를 유지한 상태에서 컬럼의 데이터 타입과 크기를 자유롭게 변경할 수 있습니다. 단, 대용량 테이블의 경우 ALTER 작업 중 테이블 잠금이 발생할 수 있으므로 서비스 트래픽이 적은 시간대에 실행하는 것이 좋습니다.