Pour en finir avec le display length sur les types de données numériques de MySQL

Contrairement à la croyance populaire, écrire :


create table eleve (

id_eleve tinyint(2) unsigned NOT NULL PRIMARY KEY

) 

ne fera pas en sorte que vous vous retrouviez avec des nombres inférieurs à 99. Ce 2 entre parenthèses n’est utile que lorsque vous utilisez l’option ZEROFILL (littéralement « remplir avec des zéros »). La preuve, insérez donc 255, qui est la limite haute d’un tinyint non signé :

insert into eleve values (255);

Si vous faites :

select * from eleve;

Vous verrez bien 255 s’afficher ! Si par contre vous utilisez l’option ZEROFILL, comme suit :

create table eleve (
id_eleve tinyint(2) unsigned ZEROFILL NOT NULL PRIMARY KEY
)

Alors en insérant 1 :

insert into eleve values (1);

Vous verrez, après un nouveau select, que ce chiffre a été complété (sur la gauche, évidemment…) par autant de zéros qu’il faut pour satisfaire votre longueur d’affichage (display length), qui est de 2 !

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.