Aller au contenu

Sujets conseillés

Posté

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.

Posté (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é par portekoi
Posté

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

Posté (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é par portekoi
Posté

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 ? :boude:

Posté

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

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...