Pendant des années j'ai été sous l'hypothèse quand j'ai créé une nouvelle colonne de type bigint (12) pour une table MySQL que le champ est limité à des entiers avec jusqu'à 12 chiffres. Cependant, j'ai récemment remarqué que des valeurs allant jusqu'à 16 chiffres peuvent être écrites et sélectionnées dans une colonne définie par bigint (12) sans aucun avertissement ou problème. Est-ce que quelqu'un peut m'aider s'il vous plaît à comprendre pourquoi c'est le cas et ce que signifie réellement cette définition de colonne? Merci d'avance!MySQL int définition explication
Répondre
bigint (12) n'est pas tronqué du tout. Le 12 est utilisé à des fins d'affichage.
Avoir un oeil à Numeric Types
type numérique Attributs
MySQL supporte une extension pour spécifiant éventuellement l'affichage largeur de types de données entiers dans parenthèses à la suite du mot clé de base pour la type. Par exemple, INT (4) spécifie un INT avec une largeur d'affichage de quatre chiffres. Cette largeur d'affichage facultative peut être utilisée par les applications pour afficher des valeurs entières ayant une largeur inférieure à la largeur spécifiée pour la colonne en les remplissant à gauche avec espaces. (Autrement dit, cette largeur est présent dans les métadonnées de retour avec ensembles de résultats. Qu'il soit utilisé ou non est en place à la demande.)
La largeur de l'écran ne limite pas la gamme de valeurs qui peuvent être stocké dans la colonne. Il n'empêche pas non plus que les valeurs plus larges que la largeur de l'affichage de colonne ne s'affichent correctement.
lire Numeric Type Attributes
section de la documentation MySql INT(4) specifies an INT with a display width of four digits
donc ce que vous me dites est que, en spécifiant le 12, je ne suis pas sauver quoi que ce soit en termes de ressources et qu'il est seulement une valeur facultative un programme d'affichage peut choisir d'ignorer ou non. Fondamentalement, si j'utilise bigint (X) qu'il peut stocker la gamme complète de valeurs qu'un bigint peut stocker et allouera de l'espace disque de manière appropriée pour cela? –
Je crois que c'est ce que dit la documentation. –
Esprit qui souffle. J'ai demandé à quelques personnes qui ont passé plus de 10 ans de travailler dans des ops et ils ne pouvaient pas l'expliquer. Merci pour l'aide. –