Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

MySQL CAST สามารถจัดการโอเวอร์โฟลว์ได้อย่างไร


MySQL CAST สามารถจัดการโอเวอร์โฟลว์ที่เกิดขึ้นระหว่างการประเมินนิพจน์เชิงตัวเลขได้ สมมติว่าการประเมินนิพจน์ตัวเลขทำให้เกิดการล้น MySQL จะแสดงข้อความแสดงข้อผิดพลาด ตอนนี้เพื่อจัดการกับการล้นนี้ เราสามารถเปลี่ยนค่าตัวเลขนั้นเป็น UNSIGNED ด้วยความช่วยเหลือของ CAST

ตัวอย่างเช่น ในการเพิ่ม 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)