Sommaire

Séquences et attribut d’identité

Une séquence est un type d’objet un peu particulier. Une séquence correspond à un compteur qui peut être manipulé avec quelques fonctions ; notamment la fonction nextval() qui permet d’incrémenter la valeur du compteur et de la récupérer. Ceci permet par exemple d’obtenir une sorte d’incrémentation automatique d’une colonne. De plus, il est possible de partager une même séquence entre plusieurs tables, créant ainsi un identifiant unique inter-tables.

L’attribut d’identité apparaît avec la version 10 de PostgreSQL. Il s’agit d’une fonctionnalité très proche des séquences, mais implémentant dans PostgreSQL ce qui est défini dans la norme SQL ISO.

Les types de données SERIAL et BIGSERIAL créent automatiquement une séquence et utilisent la fonction nextval() dans l’expression de la valeur par défaut de la colonne.

Dans une table comme la table prestations, la clé primaire est définie comme étant un entier. Il est possible d’utiliser une séquence pour l’alimenter automatiquement. L’exemple suivant montre l’usage le plus simple :

CREATE TABLE prestations (   prest_id serial primary key ,  
   [ ... ]   
) ; 

qui est l’équivalent de :

CREATE SEQUENCE prest_id_seq ;  
CREATE TABLE prestations (  
    prest_id ...