Mysql : Impact convertion champ numérique SMALLINT vers BIGINT

WRInaute passionné
Bonjour,

J'ai une table très importante dont le champ PRIMAIRE en AUTO_INCREMENT est défini en smallint

J'avais mal calculé et je dois passer en INT ou BIGINT

Je ne trouve pas d'information (sure) sur l'impact que cela aurait sur l'intégrité des données.

Pouvez-vous me rassurer que dans ce sens (petit vers plus gros) il n'y aura aucune perte ou transformation des données ?

Merci d'avance
 
WRInaute passionné
Il n'y a pas de risque, mais si tu doutes pourquoi tu ne copies pas la table pour faire un essai.

Ou si ce n'est pas déjà le cas, passe ton SMALLINT en UNSIGNED, ça va jusqu'à 65 535.

Je mets habituellement INT et UNSIGNED, ça va déjà jusqu'à 4 294 967 295.
 
WRInaute impliqué
Aucune perte ni altération des données à craindre.
À moins que tu aies très, très mal évalué le nombre d'enregistrements à l'origine, tu devrais envisager de passer le champ en MEDIUMINT. C'est toujours une bonne chose d'avoir un type qui reflète ce que le champ stocke vraiment, pour les perfs et la consommation RAM (quand on a beaucoup d'enregistrements, ce qui n'est visiblement pas ton cas), mais aussi pour la lisibilité : on a une meilleure idée de ce que contient le champ rien qu'en regardant la structure de la base.
 
Discussions similaires
Haut