[MYSQL] Capacité des colonnes

WRInaute passionné
Bonjour,

Pourquoi lors de la définition d'un Interger du type :
mediumint(6) UNSIGNED

Il est possible d'enregistrer un entier à 8 chiffres.

À quoi correspond le 6 ?
Pour un varchar(N), N correspond pourtant bien au nombre de caractères ?

Merci.
 
WRInaute passionné
lol

meduim int a une amplitude déjà définie : 3 octets ==> 256^3

en lui attribuant unsigned tu lui retire la possibilité de contenir des chiffres négatifs et par conséquent tu multiplies par 2 le nombre possible d'entier

rog
 
WRInaute passionné
Salut,

Aucun problème de ce coté là, c'est volontaire et je suis tout à fait d'accord, ma question porte sur la Taille/Valeurs.
 
WRInaute passionné
tu as raison, je ne me suis pas posé la question mais je pense que c'est le nombre de bits et si c'est ça le chiffre maximum serait 63

ma technique dans ce type de cas c'est d'insérer un gand nombre dans le champ

tu retrouvera le chiffre maximum que la champ accepte

rog
 
WRInaute passionné
dorian53 a dit:
mediumint(6) UNSIGNED
Il est possible d'enregistrer un entier à 8 chiffres.
À quoi correspond le 6 ?
A priori, ca correspond au nombre d'octets. Donc tu peux enregistrer tous les entiers jusqu'a 256^6 (environ 281000000000000).
 
WRInaute discret
Serious a dit:
dorian53 a dit:
mediumint(6) UNSIGNED
Il est possible d'enregistrer un entier à 8 chiffres.
À quoi correspond le 6 ?
A priori, ca correspond au nombre d'octets. Donc tu peux enregistrer tous les entiers jusqu'a 256^6 (environ 281000000000000).
Oui, effectivement, je viens de vérifier dans la doc MySQL! :)

@++

R@f
 
WRInaute passionné
@serious

en fait c'est bien ce que je pensais, les colonnes sont fixes

256^6 ==> impossible car la tu dépasses 256^3 qui est la capacité maximum de la colonne

@rafgug

toi tu es très fort rafgug, autant j'ai compris la logique de raisonnement de serious, autant la tienne me laisse perplexe
8O

Oui, effectivement, je viens de vérifier dans la doc MySQL!

si tu me permets, je vais poster ta reponse dans quelques forums de copains à moi

ça fait déjà une demi heure que je m'éclate de rire et je n'arrive pas à m'arrêter, faut absolument que je partage ça

je ne peux pas le garder pour moi, ce serait trop égoiste

ps : le prend pas mal, c'est pas de la méchanceté

rog
 
WRInaute discret
rog a dit:
@rafgug

toi tu es très fort rafgug, autant j'ai compris la logique de raisonnement de serious, autant la tienne me laisse perplexe
8O

Oui, effectivement, je viens de vérifier dans la doc MySQL!

si tu me permets, je vais poster ta reponse dans quelques forums de copains à moi

ça fait déjà une demi heure que je m'éclate de rire et je n'arrive pas à m'arrêter, faut absolument que je partage ça

je ne peux pas le garder pour moi, ce serait trop égoiste

ps : le prend pas mal, c'est pas de la méchanceté

rog
Je parlais du fait que le nombre exprime des octets... Et je ne vois pas ce qui est drôle...

@++

R@f
 
WRInaute occasionnel
rog : le prend pas mal, mais on rigole pas mal avec toi aussi.

Tu deboules depuis quelques messages sur WRI en disant "lol" et "rofl" a tout bout de champ (ce qui me permet d'estimer ton age plutot vers 10 ans que vers 30 ans), tu envoies chier des gens, tu te blindes des réponses de certains et tu donnes toi aussi des réponses très très hasardeuses et fausses... (exemple : sur utf8 ce week-end !)

Donc a moins de passer pour l'idiot du village d'ici peu de temps, il faudrait que tu apprennes a respecter la communauté qui "vit" ici...
 
WRInaute passionné
@ltressens

man

je ne le prend pas mal

exemple : sur utf8 ce week-end !)

la je crois que tu n'as rien compris je vais pas pourrir ce topic, si tu veux t'en ouvres un ou tu relances l'existant

--------------------------------------------------
@rafgug

j'ai cru comprendre que tu avais vérifié sur le site mysql que

mediumint (6) definissait la taille de la colonne à 6 Bytes ==> 256^6

rog
 
WRInaute passionné
ltressens a dit:
rog : le prend pas mal, mais on rigole pas mal avec toi aussi.

Tu deboules depuis quelques messages sur WRI en disant "lol" et "rofl" a tout bout de champ (ce qui me permet d'estimer ton age plutot vers 10 ans que vers 30 ans), tu envoies chier des gens, tu te blindes des réponses de certains et tu donnes toi aussi des réponses très très hasardeuses et fausses... (exemple : sur utf8 ce week-end !)

Donc a moins de passer pour l'idiot du village d'ici peu de temps, il faudrait que tu apprennes a respecter la communauté qui "vit" ici...

+1
 
WRInaute discret
rog a dit:
@rafgug

j'ai cru comprendre que tu avais vérifié sur le site mysql que

mediumint (6) definissait la taille de la colonne à 6 Bytes ==> 256^6
Non, j'ai vérifié pour la taille que MEDIUMINT(n) --> un int de n octets... C'est juste que je n'ai pas trié ce que m'a donné le bouton "citer" sur la réponse de "Serious"...

C'est pas un drame, mais je trouve le démarrage de "foutage de gueule" un peu rapide...

@++

R@f
 
WRInaute passionné
mais mediumint (n)
n = nombre d'octets = false

la taille de la colonne est fixe

j'ai testé moi même

j'ai passé n à 3 et j'ai essayé d'inséré 100000000

ensuite je l'ai passé à 6 et j'ai re essayé d'insérer 100000000

dans les deux cas le nombre inséré est 256^3

rog

@dadovb

tu te rendras compte que mon niveau d'études l'interdit

rog
 
WRInaute discret
rog a dit:
j'ai testé moi même

j'ai passé n à 3 et j'ai essayé d'inséré 100000000

ensuite je l'ai passé à 6 et j'ai re essayé d'insérer 100000000

dans les deux cas le nombre inséré est 256^3
Oki! Si tu chopes le fin mot de l'histoire, ca m'intéresse... Pcq ces trucs doivent servir à qqch, ^^

@++

R@f
 
WRInaute passionné
Désolé de relancer le sujet mais au final je n'ai toujours pas trouvé l'intérêt de cette valeur ?

Par défaut mediumint( 8 ) mais 8 quoi ?

J'ai modifié cette valeur mais rien ne change lors des insertions nous sommes toujours limité à la taille initiales soit 3octets 2^(8*3) en UNSIGNED.

Quelqu'un c'est à quoi cette colonne correspond ?
 
WRInaute passionné
j'ai la forte impression que cet attribut ne sert à rien et que c'est un héritage de syntaxe des attributs de champs char etc...

hier soir j'ai essayé de mettre la main sur mes cours (mysql 3.23) mais je ne les ai pas trouvés (faut envisager serieusement de ranger mon bureau)
lol

dès que je les trouve je te donne l'explication

rog
 
WRInaute accro
il y a une histoire d'allocation d'espace dans mysql.

si tu met 1 par défaut l'espace réservé sur donc 1 octet

si l'enregistrement que tu met dedans dépasse cette capacité, mysql bascule automatique à la limite imputé par le type du champ.

l'avantage est lorsque tu n'as besoin de stocker qu'une information du style :

activé : oui / non : 0 / 1
 
WRInaute passionné
Voici la réponse


Cette spécification de taille est utilisée pour remplir à gauche, avec le caractère de remplissage par défaut, les nombres dont la taille est inférieure à celle spécifiée mais uniquement à l'affichage : cela ne réduit pas l'intervalle de validité des valeurs qui peuvent être stockées dans la colonne.

Lorsqu'elle est utilisée avec l'attribut de colonne optionnel ZEROFILL, le caractère de remplissage par défaut est remplacé par le caractère zéro. Par exemple, pour une colonne dont le type est INT(5) ZEROFILL, la valeur 4 sera lue 00004.
 
Discussions similaires
Haut