MySQL에서는 ALTER 명령어를 사용하여 테이블의 열(컬럼) 크기를 손쉽게 수정할 수 있습니다. 예를 들어, 특정 열을 정의할 때 지정한 크기보다 더 긴 데이터를 삽입하려고 하면 오류가 발생합니다. 이러한 문제는 열 크기를 수정함으로써 해결할 수 있습니다.
1. 테이블 생성하기
먼저 CREATE 명령어로 예제 테이블을 생성해 보겠습니다.
mysql> CREATE table ModifyColumnNameDemo -> ( -> id int, -> StudentName varchar(10) -> ); Query OK, 0 rows affected (0.45 sec)
2. 데이터 삽입 시 발생하는 오류 확인
테이블이 성공적으로 생성되면 INSERT 명령어로 레코드를 삽입할 수 있습니다. 하지만 정의된 크기를 초과하는 데이터를 넣으면 다음과 같은 오류가 발생합니다.
mysql> INSERT into ModifyColumnNameDemo values(1,'CarolTaylor'); ERROR 1406 (22001): Data too long for column 'StudentName' at row 1
위 쿼리에서는 1406 오류(데이터가 열에 비해 너무 김)가 발생했습니다. 이 문제는 ALTER 명령어로 열 크기를 수정하면 해결됩니다.
3. ALTER 명령어로 열 크기 수정하기
열 크기를 수정하는 기본 문법은 다음과 같습니다.
ALTER table yourTableName modify column_name;
실제로 StudentName 열의 크기를 varchar(200)으로 변경해 보겠습니다.
mysql> ALTER table ModifyColumnNameDemo modify StudentName varchar(200); Query OK, 0 rows affected (1.54 sec) Records: 0 Duplicates: 0 Warnings: 0
4. 수정 결과 확인하기
DESC 명령어로 테이블 구조를 조회하여 열 크기가 변경되었는지 확인할 수 있습니다.
mysql> DESC ModifyColumnNameDemo;
실행 결과는 다음과 같습니다.
+-------------+--------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------------+--------------+------+-----+---------+-------+ | id | int(11) | YES | | NULL | | | StudentName | varchar(200) | YES | | NULL | | +-------------+--------------+------+-----+---------+-------+ 2 rows in set (0.04 sec)
출력 결과를 보면 StudentName 열의 크기가 varchar(200)으로 변경된 것을 확인할 수 있습니다.
5. 데이터 재삽입 및 검증
이제 동일한 데이터를 다시 삽입해도 오류 없이 정상적으로 처리됩니다.
mysql> INSERT into ModifyColumnNameDemo values(1,'CarolTaylor'); Query OK, 1 row affected (0.14 sec)
SELECT 명령어로 삽입된 레코드를 조회해 보겠습니다.
mysql> SELECT * from ModifyColumnNameDemo;
실행 결과는 다음과 같습니다.
| id | StudentName | +------+-------------+ | 1 | CarolTaylor | +------+-------------+ 1 row in set (0.00 sec)
위 출력 결과에서 볼 수 있듯이, 열 크기를 수정한 후에는 레코드가 오류 없이 성공적으로 삽입됩니다. 이처럼 ALTER TABLE ... MODIFY 구문을 활용하면 기존 데이터를 유지하면서도 열의 크기를 유연하게 조정할 수 있습니다.