PostgreSQL La base de donnees la plus sophistiquee au monde.

Forums PostgreSQL.fr

Le forum officiel de la communauté francophone de PostgreSQL

Vous n'êtes pas identifié(e).

#1 15/02/2021 12:51:56

Raymhi
Membre

Erreur sur la longueur int

Bonjour,

je me permet de vous écrire concernant un problème que je n'arrive pas à identifier.

J'ai postgresql 11 installé sur un serveur ubuntu et j’exécute mes requête via la commande psql.

Cette requête : create table test (id integer (3) NOT NULL);

Me renvoi l'erreur : syntax error at or near "("

Alors que cette requête fonctionne correctement : create table test (id int NOT NULL);

Idem si je passe par mon interface graphique adminer.

Je ne comprends pas pourquoi préciser la longueur d'un int pose problème...

Auriez-vous une idée ?

Cordialement.

Hors ligne

#2 15/02/2021 13:06:25

Re : Erreur sur la longueur int

Parce que un entier n'a pas de longueur (on n'est pas en COBOL avec "PIC 999")

Dernière modification par herve.lefebvre (15/02/2021 13:06:36)

Hors ligne

#3 15/02/2021 13:14:35

Raymhi
Membre

Re : Erreur sur la longueur int

C'est ce que j'étais en train de me demander en voyant la création des table sequence avec les index.

J'ai trop l'habitude de mysql moi.

Ok du coup c'est comme le type 'text' si je comprends bien ?

J'ai l'habitude d'optimiser ma table en affectant une taille au int, mais là on ne peut le faire qu'en choisissant entre 'smallint' 'integer' et 'bigint' alors ?

Dernière modification par Raymhi (15/02/2021 13:18:06)

Hors ligne

#4 15/02/2021 14:02:05

Re : Erreur sur la longueur int

Raymhi a écrit :

Ok du coup c'est comme le type 'text' si je comprends bien ?

J'ai l'habitude d'optimiser ma table en affectant une taille au int, mais là on ne peut le faire qu'en choisissant entre 'smallint' 'integer' et 'bigint' alors ?

Le type text a une longueur variable (en fonction de ce qu'on met dedans).

Les types entiers ont une taille fixe, et donc restreignent les valeurs min/max qu'on peut y mettre.

Cf : https://docs.postgresql.fr/13/datatype- … TATYPE-INT

Hors ligne

#5 15/02/2021 14:40:02

gleu
Administrateur

Re : Erreur sur la longueur int

Il est aussi possible d'utiliser le type numeric. On peut préciser la taille (numeric(3) par exemple). C'est stocké comme du texte, mais de ce fait, les opérations de calcul et de comparaison sont bien plus lentes qu'avec les différents types integer.


Guillaume.

Hors ligne

#6 15/02/2021 17:33:22

Raymhi
Membre

Re : Erreur sur la longueur int

Merci à vous pour vos retours.

Hors ligne

Pied de page des forums