Erreur MySQL 1264: valeur hors gamme pour la colonne

comme I SET cust_fax dans une table dans MySQL comme ceci:

cust_fax integer(10) NOT NULL,

et ensuite j'insère la valeur comme ceci:

INSERT INTO database values ('3172978990');

mais alors il dit

`erreur 1264 'hors valeur pour la colonne

Et je veux savoir où est l'erreur? Mon jeu? Ou d'autres?

toute réponse sera appréciée!

39
demandé sur HerrSerker 2013-01-11 22:33:09

4 réponses

le entier 3172978990 est supérieur à 2147483647, d'où l'erreur**.

pour corriger l'erreur, changez votre type de données en VARCHAR . Téléphone, Fax, etc. devrait être stocké sous forme de chaînes. Voir cette discussion .

* * voici un graphique qui vous indique quel type entier Peut stocker quelles valeurs.

58
répondu Salman A 2017-05-23 11:47:25

vous dépassez la longueur du type de données int . Vous pouvez utiliser l'attribut non signé pour supporter cette valeur.

signé INT peut supporter jusqu'à 2147483647 et avec non signé INT permet double que cela. Après cela, vous voulez encore enregistrer des données que d'utiliser CHAR ou VARCHAR avec la longueur 10

10
répondu Saharsh Shah 2013-01-11 18:47:39

vous pouvez aussi changer le type de données en bigInt et cela résoudra votre problème, ce n'est pas une bonne pratique de garder des entiers comme Chaînes à moins que nécessaire. :)

ALTER TABLE T_PERSON MODIFY mobile_no BIGINT;
8
répondu Rohit Kolhekar 2018-06-04 16:56:55

Utiliser unsigned . int = de -2 147 483 648 à 2 147 483 647

1
répondu soft87 2015-01-06 19:12:00