Deze extra "feature" weergavebreedte is nogal verwarrend, omdat in andere kolomtypes zoals CHAR
is de lengte specificeert.
Hier is een kort overzicht:
- Belangrijkste:het is niet met vermelding van de "opslagruimte" of het "aantal cijfers". Het zegt alleen maar hoe de gegevens in deze kolom zijn opgemaakt voordat het wordt geretourneerd. INT(5) kan de dezelfde . opslaan waarden zoals INT(16) of INT(255) - alle drie kunnen alle (en alleen) waarden opslaan die geldig zijn voor INT. INT(255) kan geen nummer met 255 cijfers opslaan. De opslagruimte voor allemaal is de ruimte die een INT inneemt.
- Als u
ZEROFILL
gebruikt op een kolom met weergavebreedte en de tekenreeksrepresentatie van het opgeslagen nummer korter is dan de weergavebreedte, wordt links gevuld met nullen. Als het langer duurt, gebeurt er niets. Als u INT(5) kiest en de waarde 13 is, wordt deze geretourneerd als 00013. Als de waarde 123456 is, wordt deze geretourneerd als 123456. - Als u
ZEROFILL
niet gebruikt , er zal helemaal geen opvulling zijn (geen spaties en dergelijke) - Als u
ZEROFILL
gebruikt , moet u zich ervan bewust zijn dat de kolom ookUNSIGNED
. zal zijn - In elk geval wordt de weergavebreedte geretourneerd wanneer de metagegevens van de tabel worden opgevraagd. Een applicatie zou dus kunnen weten hoe de gegevens moeten worden opgemaakt.
Ik houd niet van de weergavebreedte, omdat de opslaglaag "wetend" is over de visuele presentatie van de opgeslagen gegevens. Daarnaast is er geen nut dat ik ken.