ALTER 명령을 사용하여 열 크기를 수정할 수 있습니다. 열 크기를 수정하는 방법을 살펴보겠습니다. 어떤 크기의 열을 정의한다고 가정합니다. 삽입 시 우리가 정의한 것보다 더 큰 사이즈를 입으면 오류가 발생합니다.
위의 문제는 크기를 수정하면서 줄일 수 있습니다. 더 많은 이해를 위해 CREATE 명령 −
을 사용하여 테이블을 만들 수 있습니다.mysql> CREATE table ModifyColumnNameDemo -> ( -> id int, -> StudentName varchar(10) -> ); Query OK, 0 rows affected (0.45 sec)
테이블을 성공적으로 생성한 후 INSERT 명령을 사용하여 테이블에 레코드를 삽입할 수 있습니다.
mysql> INSERT into ModifyColumnNameDemo values(1,'CarolTaylor'); ERROR 1406 (22001): Data too long for column 'StudentName' at row 1
위 쿼리에서 오류 1406이 발생합니다. 이 오류는 열을 수정하는 동안 해결할 수 있습니다. 이를 위해 ALTER 명령을 사용할 수 있습니다. 다음은 구문입니다 -
ALTER table yourTableName modify column_name;
위 쿼리를 적용하여 열의 크기를 일부 크기로 수정 -
mysql> ALTER table ModifyColumnNameDemo modify StudentName varchar(200); Query OK, 0 rows affected (1.54 sec) Records: 0 Duplicates: 0 Warnings: 0
그 후 'StudentName' 열 이름의 크기가 200인지 확인할 수 있습니다. 쿼리는 다음과 같습니다. −
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 열을 보면 크기가 200으로 변경되었습니다. 이제 테이블에 레코드를 삽입할 수 있으며 오류가 발생하지 않습니다. 확인해보자 -
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)
위의 출력을 보면 컬럼의 크기를 수정한 후 레코드가 성공적으로 삽입되었습니다.