IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PostgreSQL Discussion :

Séquence et pseudo type SERIAL


Sujet :

PostgreSQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert
    Avatar de Alexandre T
    Homme Profil pro
    Chef de projets AMO
    Inscrit en
    Mai 2002
    Messages
    1 213
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projets AMO
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 213
    Par défaut Séquence et pseudo type SERIAL
    La propriété SERIAL est très pratique je trouve.

    8.1.4. Types serial

    Les types de données serial et bigserial ne sont pas de vrais types, mais plutôt un raccourci de notation pour décrire des colonnes d'identifiants uniques (similaires à la propriété AUTO_INCREMENT utilisée par d'autres SGBD). Dans la version actuelle, indiquer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    CREATE TABLE nom_de_table (
        nom_de_colonne SERIAL
    );
    est équivalent à écrire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    CREATE SEQUENCE nom_de_table_nom_de_colonne_seq;
    CREATE TABLE nom_de_table (
        nom_de_colonne integer NOT NULL 
        DEFAULT nextval('nom_de_table_nom_de_colonne_seq') 
    );
    ALTER SEQUENCE nom_de_table_nom_de_colonne_seq 
             OWNED BY nom_de_table.nom_de_colonne;
    Seulement, je suis une charte de développement très bien faite (non, ce n'est pas ironique). Cette charte précise des conventions de codage. Notre convention de codage des séquences n'est pas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    nom_de_table_nom_de_colonne_seq
    Mais

    Je voulais savoir si il y avait une option au niveau de postgreSQL pour définir ce format de génération de séquence.
    Alexandre Tranchant
    Chef de projet AMO pour le Cerema.
    Retrouvez mes articles sur PHP et Symfony

  2. #2
    Membre Expert
    Homme Profil pro
    Inscrit en
    Septembre 2006
    Messages
    2 963
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 2 963
    Par défaut
    Citation Envoyé par Alexandre T
    La propriété SERIAL est très pratique je trouve.

    Seulement, je suis une charte de développement très bien faite (non, ce n'est pas ironique). Cette charte précise des conventions de codage. Notre convention de codage des séquences n'est pas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    nom_de_table_nom_de_colonne_seq
    Mais

    Je voulais savoir si il y avait une option au niveau de postgreSQL pour définir ce format de génération de séquence.
    comme vous le dites vous-même, la définition d'un SERIAL ne fait qu'automatiser une séquence de création d'objets par PostgreSQL :

    si vous voulez un autre nom, faites ces opérations vous-même…
    (voir http://dgriessinger.developpez.com/p...sql/sequences/)

    c'est essentiellement créer la sequence (create sequence) et mettre la valeur par défaut du champ à nextval('SEQUENCE_NAME')…

  3. #3
    Expert confirmé
    Avatar de GrandFather
    Inscrit en
    Mai 2004
    Messages
    4 587
    Détails du profil
    Informations personnelles :
    Âge : 55

    Informations forums :
    Inscription : Mai 2004
    Messages : 4 587
    Par défaut
    A ma connaissance, il n'existe aucune option (dans la version 8.1) permettant de changer cela... Tu n'as donc que 3 possibilités (aucune très enthousiasmante ) :
    • Ne pas utiliser de type SERIAL et créer manuellement tes séquences
    • Modifier le masque directement dans le code C et compiler PostgreSQL
    • Faire la demande dans la liste de voeux de PostgreSQL
    FAQ XML
    ------------
    « Le moyen le plus sûr de cacher aux autres les limites de son savoir est de ne jamais les dépasser »
    Giacomo Leopardi

  4. #4
    Membre Expert
    Avatar de Alexandre T
    Homme Profil pro
    Chef de projets AMO
    Inscrit en
    Mai 2002
    Messages
    1 213
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projets AMO
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 213
    Par défaut
    Oui j'ai beau lire et relire, je ne vois rien.

    Je n'avais pas pensé à la recompilation

    Mais nos serveurs sont déjà installés en 8.2. Apparement, il y a possibilité de les renommer en 8.2, je vais donc choisir cette option en fin de script. (J'utilise PowerAMC pour la génération de code)

    Je vais chercher la liste des voeux et poster ma demande

    Je note tout de même le sujet comme résolu.
    Alexandre Tranchant
    Chef de projet AMO pour le Cerema.
    Retrouvez mes articles sur PHP et Symfony

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. probleme avec type serial
    Par donny dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 21/07/2005, 08h07
  2. type serial
    Par donny dans le forum PostgreSQL
    Réponses: 4
    Dernier message: 09/06/2005, 08h12
  3. Type SERIAL et clés étrangères
    Par Invité dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 13/05/2005, 11h32
  4. type serial : pb
    Par xopos dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 02/09/2004, 09h08
  5. [DB2 V7 & V8] equivalent du type SERIAL
    Par geoffrey_k dans le forum DB2
    Réponses: 3
    Dernier message: 05/07/2004, 14h09

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo