MySQL CAST는 수치 표현식 평가 중에 발생하는 오버플로를 처리할 수 있습니다. 숫자 표현식 평가가 오버플로를 생성하면 MySQL이 오류 메시지를 반영한다고 가정합니다. 이제 이 오버플로를 처리하기 위해 CAST의 도움으로 해당 숫자 값을 UNSIGNED로 변경할 수 있습니다.
예를 들어 BIGINT 최대값에 1을 추가하면 MySQL은 다음과 같이 오버플로로 인해 오류를 생성합니다. -
mysql> Select 9223372036854775807 + 1; ERROR 1690 (22003): BIGINT value is out of range in '(9223372036854775807+1)'
이제 MySQL은 CAST의 도움으로 이러한 종류의 오버플로를 다음과 같이 처리합니다.
mysql> Select CAST(9223372036854775807 AS UNSIGNED) +1; +------------------------------------------+ | CAST(9223372036854775807 AS UNSIGNED) +1 | +------------------------------------------+ | 9223372036854775808 | +------------------------------------------+ 1 row in set (0.07 sec)