MySQL CAST如何处理溢出?
MySQL CAST可以处理数值表达式评估时发生的溢出。假设数值表达式评估产生溢出,则MySQL会反映错误消息。现在,为了处理此溢出,我们可以使用CAST将该数值更改为UNSIGNED。
例如,将1添加到BIGINT最大值时,MySQL因溢出而产生错误,如下所示−
mysql> Select 9223372036854775807 + 1;
ERROR 1690 (22003): BIGINT value is out of range in '(9223372036854775807+1)'
现在,借助 CAST,MySQL可以处理这种溢出,如下所示:
mysql> Select CAST(9223372036854775807 AS UNSIGNED) +1;
+------------------------------------------+
| CAST(9223372036854775807 AS UNSIGNED) +1 |
+------------------------------------------+
| 9223372036854775808 |
+------------------------------------------+
1 row in set (0.07 sec)
阅读更多:MySQL 教程