Philipp Hasenfratz: MySQL zählt nicht mehr hoch

Beitrag lesen

Halihallo Phil

Hm, habe nu von tinyint(4) auf int(11) geändert und das unsigned an gemacht.
Und es scheint zu funzen... Aber was ist dieses unsigned?!

Falsch. Es funktioniert jetzt bis 255, siehe:

http://www.mysql.com/doc/en/Column_types.html

<paste>
TINYINT[(M)] [UNSIGNED] [ZEROFILL]
A very small integer. The signed range is -128 to 127. The unsigned range is 0 to 255.
</paste>

Unsignet bedeutet "Vorzeichenlos". Eine vorzeichenbehaftete Zahl verwendet ein Bit, um + oder - zu "speichern". "Fällt" bei einer unsignet-number dieses Bit "weg", kann es zur Speicherung des Wertes verwendet werden => mit unsigned Zahlen kannst du doppelt soviele Werte (im positiven Bereich, der negative Fällt dadurch eben weg) darstellen.
Da auto_inc immer bei 1 anfängt und es niemals zu negativen Werten kommt, macht unsigned natürlich wesentlich mehr Sinn.

Viele Grüsse

Philipp