Computer >> Máy Tính >  >> Lập trình >> MySQL

MySQL CAST có thể xử lý tràn như thế nào?


MySQL CAST có thể xử lý tràn xảy ra trong quá trình đánh giá biểu thức số. Giả sử nếu đánh giá biểu thức số tạo ra tràn thì MySQL phản ánh thông báo lỗi. Bây giờ để xử lý lỗi tràn này, chúng ta có thể thay đổi giá trị số đó thành UNSIGNED với sự trợ giúp của CAST.

Ví dụ khi thêm 1 vào giá trị lớn nhất BIGINT, MySQL tạo ra lỗi do tràn như sau -

mysql> Select 9223372036854775807 + 1;
ERROR 1690 (22003): BIGINT value is out of range in '(9223372036854775807+1)'

Bây giờ, với sự trợ giúp của CAST, MySQL xử lý loại tràn này như sau:

mysql> Select CAST(9223372036854775807 AS UNSIGNED) +1;

+------------------------------------------+
| CAST(9223372036854775807 AS UNSIGNED) +1 |
+------------------------------------------+
| 9223372036854775808                      |
+------------------------------------------+
1 row in set (0.07 sec)