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 :

PGSQL et les num auto


Sujet :

PostgreSQL

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2005
    Messages : 76
    Points : 55
    Points
    55
    Par défaut PGSQL et les num auto
    Bonjour,

    je me lance dans cet SGBD pour essayer d'avoir le max de performances avec ASP.

    Je viens d'importer une BD Access et je remarque qu'il n'y a pas de numéro auto !!

    Est-ce moi qui ai loupé qq chose ou alors, ce n'est pas inclus ??

    Merci de vos lumieres,
    Mike

  2. #2
    Expert éminent
    Avatar de GrandFather
    Inscrit en
    Mai 2004
    Messages
    4 587
    Détails du profil
    Informations personnelles :
    Âge : 54

    Informations forums :
    Inscription : Mai 2004
    Messages : 4 587
    Points : 7 103
    Points
    7 103
    Par défaut
    Bonjour,

    sous PotsgreSQL, les champs auto-incrémentés sont gérés par des séquences ; pour plus d'infos, voir http://dgriessinger.developpez.com/p...sql/sequences/
    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

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 6
    Points : 5
    Points
    5
    Par défaut
    pour créer un champ auto-incrémenté, il suffit d'écrire par exemple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     CREATE TABLE Tbidon (<div style="margin-left:40px"> idAutoIncremente serial,</div>);
    le type serial créé automatiquement une séquence d'incrément égal à 1, assure l'unicité de la valeur du champ et créé un index

    petit lien utile :
    http://asi.insa-rouen.fr/projets/FAQ/PostgreSQLFAQ/#_4,16,1_)_Comment

  4. #4
    Membre habitué Avatar de mamiberkof
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    290
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Maroc

    Informations forums :
    Inscription : Avril 2005
    Messages : 290
    Points : 155
    Points
    155
    Par défaut
    j'ai essayé Alter table nom_table Alter column type serial
    mais ça marche pas,il me dit que le type serial n'existe pas

    une idée ,comment modifier le type de la colonne avec serial ?
    ¤-------------------------------------------------------------------
    |لا تبكي يا بُـنية، فإن الله مانع أباك...
    | Trd :"Ne pleure pas ma petite fille, Dieu protége ton père" Le prophet Mohammed.
    | L'effet developpez.com : ->geek
    | It is man's ability to remember that sets us apart. We are the only species concerned with the past. Our memories give us voice. They bear witness to history so that others |might learn. So they might celebrate our triumphs and be warned of our failures.
    ¤-------------------------------------------------------------------

  5. #5
    C_C
    C_C est déconnecté
    Membre régulier
    Inscrit en
    Novembre 2005
    Messages
    139
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 139
    Points : 92
    Points
    92
    Par défaut
    Salut,

    une fois la table créée il est impossible de modifier le type d'une colonne pour serial.
    Le type serial doit être choisi lors de la création de la table.

    Je connais 2 solutions pour résoudre ce problème:

    1 - Tu fais drop de la table et tu crées une autre et lá tu peux choisir le type serial pour ta clé primaire. Pour ça tu peux gérer le script de création de la table, changer dans le script le type de la clé primaire pour serial et executer ce nouveau script.

    2 - Si l'élimination de la table te pose des problèmes il faut que tu crées une séquence puis tu fais un alter table de la table et tu met comme valeur par défaut de la clé primaire ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    nextval('public."<nom_de_la_séquence>"'::text)

  6. #6
    Membre habitué Avatar de mamiberkof
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    290
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Maroc

    Informations forums :
    Inscription : Avril 2005
    Messages : 290
    Points : 155
    Points
    155
    Par défaut
    ok merci je vais essayé, mais la sequence je le cree simplement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Create sequence namtable_namecolumn_seq
    ? il faut qu'il soit avec ce nom imperativement, ou c'est juste de la bonne habitude programmation ?
    ¤-------------------------------------------------------------------
    |لا تبكي يا بُـنية، فإن الله مانع أباك...
    | Trd :"Ne pleure pas ma petite fille, Dieu protége ton père" Le prophet Mohammed.
    | L'effet developpez.com : ->geek
    | It is man's ability to remember that sets us apart. We are the only species concerned with the past. Our memories give us voice. They bear witness to history so that others |might learn. So they might celebrate our triumphs and be warned of our failures.
    ¤-------------------------------------------------------------------

  7. #7
    C_C
    C_C est déconnecté
    Membre régulier
    Inscrit en
    Novembre 2005
    Messages
    139
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 139
    Points : 92
    Points
    92
    Par défaut
    C'est juste une bonne habitude de programmation.

  8. #8
    Expert éminent
    Avatar de GrandFather
    Inscrit en
    Mai 2004
    Messages
    4 587
    Détails du profil
    Informations personnelles :
    Âge : 54

    Informations forums :
    Inscription : Mai 2004
    Messages : 4 587
    Points : 7 103
    Points
    7 103
    Par défaut
    Citation Envoyé par C_C
    2 - Si l'élimination de la table te pose des problèmes il faut que tu crées une séquence puis tu fais un alter table de la table et tu met comme valeur par défaut de la clé primaire ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    nextval('public."<nom_de_la_séquence>"'::text)
    Attention au piège classique : il ne faut pas oublier de donner les droits d'utilisation de SELECT et UPDATE sur la sequence aux utilisateurs habilités à faire des INSERT sur la table, et qui auront donc besoin d'accéder implicitement à la valeur de la séquence et de la modifier.
    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

Discussions similaires

  1. recup num auto
    Par kikilevrai dans le forum Access
    Réponses: 3
    Dernier message: 10/07/2006, 12h00
  2. Créer un Num Auto par requête pour Access
    Par Driyo dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 29/06/2006, 14h23
  3. Créer un Num Auto par requête pour Acces & SQL2k
    Par Driyo dans le forum Décisions SGBD
    Réponses: 4
    Dernier message: 29/06/2006, 14h06
  4. [Access 2003] forcer num auto pour 6 requetes
    Par dakoyaz dans le forum Access
    Réponses: 19
    Dernier message: 19/05/2006, 16h08
  5. modifier les num incrémentés
    Par abouam dans le forum Access
    Réponses: 4
    Dernier message: 13/05/2006, 14h56

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