Tchinkatchuk Posté 30 Mars 2005 Posté 30 Mars 2005 Bonjour, je souhaite créer une table avec un champ entier sur 5 chiffres. on m'oblige à taper cela : CREATE TABLE grandeville( "CodePostal" int4 NOT NULL, "NomGrandeVille" varchar(30) NOT NULL, CONSTRAINT pk_grandeville PRIMARY KEY ("CodePostal")) WITHOUT OIDS;ALTER TABLE grandeville OWNER TO postgres; alors que je voudrais cela : CREATE TABLE grandeville( "CodePostal" int(5) NOT NULL, "NomGrandeVille" varchar(30) NOT NULL, CONSTRAINT pk_grandeville PRIMARY KEY ("CodePostal")) WITHOUT OIDS;ALTER TABLE grandeville OWNER TO postgres; peut etre que mon erreur est grossière mas je ne trouve pas. Est ce impossible en version 8 de postgres ? Car je pense que la bas sera plus lourde avec du int sur 4 octets alors que le code postal max serait 99999.
Portekoi Posté 30 Mars 2005 Posté 30 Mars 2005 (modifié) Salut, Ca n'a rien à voir le 4 et 9999 Mets un Bigint sur 11 si tu as peur dépassé la limite d'un int. Je me souviens plus d'ailleurs de cette limite Et à a ta place, je mettrais un type varchar(5) pour le code postale sinon les corses vont en vouloir A toute Portekoi Modifié 30 Mars 2005 par portekoi
Tchinkatchuk Posté 30 Mars 2005 Auteur Posté 30 Mars 2005 Oui, j'ai opté tout de suite après pour un varchar car un code postal n'ai pas une donnée calculable (on croirait mon ancienne prof d'analyse lol). en postgres 8, je n'ai acces qu'a int2 , int4 ou int8 et int2 ne va que de -35000 à +35000 donc 99999 ne passait pas. Et prendre un int4 qui autorise de -2 000 000 000 à +2 000 000 000 me paraissait une perte de place. mais je ne sais toujours psa si on peut definir integer(6) par exemple qui irait jusqu'a 100000. Merci quand meme
Portekoi Posté 30 Mars 2005 Posté 30 Mars 2005 (modifié) Salut, Au risque de dire une bêtise, dans la logique du binaire : int 2 - int 4 - int 8 - int 16 - int 32 Donc int 6, connais pas Et c'est pas parce que tu as un int 2 que tu es limité à 10 . Ca va de -128 à +128 je crois mais je suis pas sûr.... Quelqu'un de plus câlé pour confirmer ou infirmer? Merci Portekoi Modifié 30 Mars 2005 par portekoi
Tchinkatchuk Posté 31 Mars 2005 Auteur Posté 31 Mars 2005 C'est bien ce que je disais. Je me suis peut etre mal exprimé. int2 est bien ce que tu dis mais je croyais qu'auparavant (par ex sous mysql, lorsque l'on declarait int(2), cela permettait seulement de -99 à 99. On m'aurait menti ?
Portekoi Posté 1 Avril 2005 Posté 1 Avril 2005 Bonjour, Euh oui mais mes connaissances ne me permettent pas d'être sûr à 100% pour les plages allouées... Mes cours de DUT sont loins Mais quand on parle d'un int(2), je suis sûr et certains que ce n'est pas de -99 à 99. Beaucoup font cette confusion A toute Portekoi
Tchinkatchuk Posté 1 Avril 2005 Auteur Posté 1 Avril 2005 ah bon ben j'en fais parti. merci beaucoup. on m'a bien mentiu alors ou j'ai mal ecouté
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant