web-dev-qa-db-fra.com

Comment corriger l'erreur 'Out of range value for column'?

Je suis allé dans phpMyAdmin et j'ai changé la valeur d'un champ entier (15) en un nombre à 10 chiffres, donc tout devrait bien fonctionner. J'ai entré la valeur '4085628851' et le message d'erreur suivant s'affiche:

Avertissement: # 1264 Valeur hors limites ajusté pour la colonne 'téléphone' à la rangée 1

La valeur devient alors '2147483647'.

Après quelques recherches sur Google, j'ai trouvé cet article qui explique comment résoudre le problème. http://webomania.wordpress.com/2006/10/01/out-of-range-value-adjusted-for-column-error/ , mais je ne sais pas comment me connecter au shell Mysql . 

Comment me connecter au shell Mysql? Comment puis-je corriger cette erreur?

17
zeckdude

La valeur que vous essayez de définir est trop grande pour un champ signé INT. La largeur d'affichage (15) n'affecte pas la plage de valeurs pouvant être stockée, mais uniquement le mode d'affichage de la valeur.

Ref: MySQL Docs on numerics

Sur les numéros de téléphone - voir Est-il préférable de stocker les numéros de téléphone dans un format canonique ou "tel que saisi"?

23
martin clayton

Je viens de changer le type de champ en BIGINT, ce qui corrige le problème. Je suppose que je ne peux pas entrer une valeur supérieure à 2147483647 pour un INT, donc je suppose que tout le monde qui utilise un champ pour entrer un numéro de téléphone à 10 chiffres utilise un BIGINT?

9
zeckdude

La meilleure option pour stocker un entier de valeur supérieure à 2147483647 serait de définir le type de champ sous la forme BIGINT.

S'il s'agit de stocker un numéro de téléphone, il est préférable de stocker la valeur sous forme de champ de texte.

8
Binu Raman

vous pouvez essayer de ne pas donner la valeur qui commence par '0 '. Si vous voulez commencer les valeurs avec zéro, utilisez le type de données varchar

0
Dharsh_Thenu