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

FAQ PostgreSQLConsultez toutes les FAQ

Nombre d'auteurs : 5, nombre de questions : 51, dernière mise à jour : 9 septembre 2005  Ajouter une question

 

Cette FAQ a été réalisée à partir des contributions des membres du forum PostgreSQL de www.developpez.com.

Si vous désirez contribuer à l'amélioration de cette FAQ, veuillez contacter le responsable.
Commentez

SommaireSyntaxe SQL et structure de donnéesNombres (3)
précédent sommaire suivant
 

Il existe un article sur ce sujet : Les séquences dans PostgreSQL

Mis à jour le 11 août 2005 hpalpha

Considerons la table :

Code sql : Sélectionner tout
CREATE TABLE test ( idauto SERIAL, macolonne TEXT, CONSTRAINT pk_idauto PRIMARY KEY (idauto));
Pour faire un INSERT il suffit d'utiliser le mot clef DEFAULT :

Code sql : Sélectionner tout
INSERT INTO test VALUES (default,'mon texte');
DEFAULT appellera automatiquement la valeur par défaut. Dans le cas d'un SERIAL, elle appellera la fonction NEXTVAL

Mis à jour le 9 septembre 2005 hpalpha

On a une table (ma_table) qui possède une clef primaire de type INT4 (mon_id)

Code sql : Sélectionner tout
1
2
3
4
5
6
7
8
9
  
SELECT * FROM ma_table; 
mon_id 
-------- 
1 
2 
4 
5 
9
Pour gérer les id avec une séquence, il faut récupérer la valeur maximum des id de la table

Code sql : Sélectionner tout
1
2
3
  
SELECT max(mon_id) FROM ma_table; 
9
On crée la séquence

Code sql : Sélectionner tout
CREATE SEQUENCE ma_sequence;
et on modifie la prochaine valeur à générer (9+1) donc 10

Code sql : Sélectionner tout
ALTER SEQUENCE ma_sequence RESTART WITH 10;
ensuite on indique que la valeur par défaut de mon_id est la séquence :

Code sql : Sélectionner tout
ALTER TABLE ma_table ALTER COLUMN mon_id SET DEFAULT nextval('ma_sequence');
nota: par convention, la séquence devrait s'appeler ma_table_mon_id_seq

Mis à jour le 13 août 2005 hpalpha

Proposer une nouvelle réponse sur la FAQ

Ce n'est pas l'endroit pour poser des questions, allez plutôt sur le forum de la rubrique pour ça


Réponse à la question

Liens sous la question
précédent sommaire suivant
 

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2024 Developpez Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.