Maison > base de données > tutoriel mysql > Comment MySQL gère-t-il le débordement lors de l'évaluation des expressions numériques ?

Comment MySQL gère-t-il le débordement lors de l'évaluation des expressions numériques ?

WBOY
Libérer: 2023-08-24 10:05:02
avant
1361 Les gens l'ont consulté

MySQL 如何处理数值表达式评估期间的溢出?

Comme nous savons que MySQL produira une erreur si un débordement se produit lors de l'évaluation des expressions numériques. Par exemple, le plus grand BIGNT signé est 9223372036854775807, donc l'expression suivante produira une erreur −

mysql> Select 9223372036854775807 + 1;
ERROR 1690 (22003): BIGINT value is out of range in '(9223372036854775807+1)'
Copier après la connexion

MySQL peut gérer ce type de données. des débordements de la manière suivante :

EN CONVERTISSANT LA VALEUR EN NON SIGNÉ

MySQL permet ce type d'opérations en convertissant les valeurs en non signé comme suit −

mysql> Select CAST(9223372036854775807 AS UNSIGNED) +1;
+------------------------------------------+
| CAST(9223372036854775807 AS UNSIGNED) +1 |
+------------------------------------------+
|                      9223372036854775808 |
+------------------------------------------+
1 row in set (0.07 sec)
Copier après la connexion

En utilisant l'arithmétique des valeurs exactes

MySQL peut utiliser l'arithmétique des valeurs exactes pour traiter les expressions ci-dessus Mode. En effet, un débordement se produit en fonction de la plage des opérandes. Par exemple, le calcul ci-dessus peut être effectué en utilisant la valeur DECIMAL comme indiqué ci-dessous −

mysql> Select 9223372036854775807.0 + 1;
+---------------------------+
| 9223372036854775807.0 + 1 |
+---------------------------+
|     9223372036854775808.0 |
+---------------------------+
1 row in set (0.01 sec)
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:tutorialspoint.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal