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

MySQL 테이블 열 크기 수정 방법: ALTER 명령어 완벽 가이드

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 구문을 활용하면 기존 데이터를 유지하면서도 열의 크기를 유연하게 조정할 수 있습니다.