Heim > Datenbank > MySQL-Tutorial > Hauptteil

Wie geht MySQL mit Überläufen bei der Auswertung numerischer Ausdrücke um?

WBOY
Freigeben: 2023-08-24 10:05:02
nach vorne
1348 Leute haben es durchsucht

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

Da wir wissen, dass MySQL einen Fehler erzeugt, wenn bei der Bewertung numerischer Ausdrücke ein Überlauf auftritt, ist der größte vorzeichenbehaftete BIGNT beispielsweise 9223372036854775807, sodass der folgende Ausdruck einen Fehler erzeugt –

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

MySQL kann solche Art verarbeiten von Überläufen auf folgende Weise:

DURCH KONVERTIERUNG VON WERT IN UNSIGNED

MySQL ermöglicht solche Operationen, indem es die Werte wie folgt in vorzeichenlosen Wert umwandelt: -

mysql> Select CAST(9223372036854775807 AS UNSIGNED) +1;
+------------------------------------------+
| CAST(9223372036854775807 AS UNSIGNED) +1 |
+------------------------------------------+
|                      9223372036854775808 |
+------------------------------------------+
1 row in set (0.07 sec)
Nach dem Login kopieren

Durch Verwendung der Arithmetik mit exakten Werten

MySQL kann die Arithmetik mit exakten Werten verwenden Verarbeiten Sie die oben genannten Ausdrücke. Dies liegt daran, dass je nach Bereich der Operanden ein Überlauf auftritt. Die obige Berechnung kann beispielsweise unter Verwendung des unten gezeigten DECIMAL-Werts durchgeführt werden: −

mysql> Select 9223372036854775807.0 + 1;
+---------------------------+
| 9223372036854775807.0 + 1 |
+---------------------------+
|     9223372036854775808.0 |
+---------------------------+
1 row in set (0.01 sec)
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie geht MySQL mit Überläufen bei der Auswertung numerischer Ausdrücke um?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:tutorialspoint.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage