MySQL CAST 如何處理溢位?


如果在數值表示式評估期間發生溢位,MySQL CAST 可以對其進行處理。如果數值表示式的評估產生了溢位,MySQL 會顯示一條錯誤訊息。要處理這種溢位,我們可以藉助 CAST 將該數值更改為 UNSIGNED。

例如,在 BIGINT 最大值中新增 1 會導致 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)

更新日期: 30-1 月-2020

211 次瀏覽

開展您的職業生涯

完成課程即可獲得認證

立即開始
廣告資訊