메시지를 담는 컬럼이 크기 초과로 에러가 발생했다.
(conn=581480) Data too long for column 'RESULT_MSG' at row 1
org.hibernate.engine.jdbc.spi.SqlException
방어 코드를 넣기 위해 최대 크기를 테스트 해보았다.
임시 테스트 생성
임시로 테스트 테이블을 만들고...
create table P_TEMP (
id int(20) unsigned auto_increment,
name varchar(5) null,
PRIMARY KEY (id)
);
6글자를 초과하는 데이터를 입력해본다. (당연히 실패를 예상하고 진행)
INSERT INTO `payment`.`P_TEMP` (`name`) VALUES ('나모의노트2')
[2019-12-12 11:51:54] [22001][1406] Data truncation: Data too long for column 'name' at row 1
한글 5글자를 넣어본다. (될까?)
INSERT INTO `payment`.`P_TEMP` (`name`) VALUES ('나모의노트')
[2019-12-12 11:52:40] 1 row affected in 14 ms
MySql 버전 확인
이 결과는 MySql 버전에 따라 다를 수 있다. (경우에 따른 버전 확인은 제타 위키 참조)
위의 테스트한 것은 5.7에서 테스트를 진행했다.
버전 4에서는 바이트단위였다고 한다. (출처)
select version();
5.7.12-log
크기를 구해보자
length가 문자열의 길이를 구해줄 것 같지만 byte단위의 크기를 돌려준다.
문자열의 길이는 char_length이다.
select name, length(name), char_length(name) from P_TEMP where id = 1;
'DB > MySQL,MariaDB' 카테고리의 다른 글
Aurora MySQL - alter table modify column 에러 (0) | 2019.09.10 |
---|---|
[MySQL] docker에 CLI로 접속하기 (0) | 2018.11.21 |