Vous n'êtes pas identifié(e).
Pages : 1
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
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
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
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.
Hors ligne
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
Merci à vous pour vos retours.
Hors ligne
Pages : 1