Comment utiliser les séquences postgres

Comment utiliser les séquences postgres
Les séquences sont un type spécial d'objet de base de données qui génère des identifiants numériques uniques. Une séquence est responsable de la génération des clés principales d'une base de données. Les séquences génèrent l'ordre numérique et il est possible que plusieurs séquences contiennent le même numérique, mais l'ordre est différent dans chaque séquence. Cet article démontre l'utilisation et le fonctionnement des séquences dans Postgres. De plus, plusieurs exemples sont cités pour vivre le fonctionnement des séquences dans Postgres.

Comment créer une séquence dans Postgres

Les séquences de Postgres sont créées en suivant la syntaxe de la commande de séquence CREATE fournie ci-dessous:

Créer une séquence

Le indique le nom que vous souhaitez définir pour une séquence et le contient les propriétés étendues pour cette séquence spécifique. Les options prises en charge par la séquence de création sont mentionnées dans la section suivante:

Options prises en charge par la commande de création de séquence

Il est possible de créer une séquence qui a des paramètres définis par l'utilisateur à l'aide de la commande de séquence Create. Les options suivantes sont prises en charge par cette commande:

[Incrément [par]]: Cette option crée la séquence avec un incrément d'un nombre numérique spécifique. La valeur par défaut est 1. De plus, si la valeur d'incrément est positive, l'ordre s'ascenda alors que l'ordre descendant peut être obtenu en passant la valeur négative.

[Comme smallInt | Int | Bigint]: Le paramètre de type de données vous permet de définir le modèle de séquence. Par défaut, le BigInt est utilisé comme type de données.

[Minvalue] ou [pas de minvalue]: La valeur minimale de la séquence peut être spécifiée en utilisant cette option. Si cette option est laissée vide, la valeur maximale par défaut est définie en fonction du type de données spécifié.

[MaxValue] ou [pas de minvalue]: Cette option est réciproque à celle ci-dessus, où vous pouvez définir la valeur maximale de votre séquence. De plus, s'il n'est pas défini, la valeur par défaut du type de données est considérée.

[Démarrer [avec] Start]: Indique la valeur du début de la séquence.

[Cycle] ou [pas de cycle]: Si cette option est définie, la valeur de séquence reprend après avoir atteint la limite maximale. La valeur par défaut, dans ce cas, n'est pas un cycle et il renvoie une erreur après avoir atteint la limite spécifiée de la séquence.

[Propriété par]: Cette option est utilisée pour associer la séquence à une colonne spécifique d'une table. En conséquence, lorsque la colonne est supprimée, la séquence est également supprimée automatiquement.

Les sections à venir feront mieux de clarifier le concept d'une séquence dans Postgres.

Comment créer une séquence dans Postgres

Cette section présente plusieurs exemples pour créer une séquence à partir de plusieurs perspectives. Chaque exemple fait référence à un autre type de séquence.

Exemple 1 : Cette commande crée une séquence appelée «Linuxhint» avec la valeur de départ de 5 et la valeur d'incrément de 2:

# Créer une séquence Linuxhint Incrément 2 Démarrage 5;

Exemple 2: De plus, si l'incrément est défini sur une valeur négative (-), la séquence commence à partir de la valeur maximale et descend à la valeur minimale spécifiée. Par exemple, la commande fournie ci-dessous créera une séquence avec les propriétés suivantes:

- "linux"Comme nom de séquence

- "-2«Comme valeur d'incrément, ce qui signifie que la séquence descendra avec une différence de -2.

- "dix"Comme valeur de départ, car l'incrément est une valeur négative, la valeur maximale serait également 10.

- Enfin, le paramètre de cycle est également utilisé

# Créer une séquence Linux Incrément -2 minvalue 2 maxvalue 10 start 10 cycle;

Comment obtenir des séquences d'une base de données

Chaque séquence est associée à une base de données. Par exemple, nous sommes connectés au linuxhint Base de données et nous avons récupéré toutes les séquences à l'aide de la commande fournie ci-dessous:

Dans la commande ci-dessous, la roson et séquence_name sont obtenus à partir de Pg_class. Le Pg_class dans Postgres contient les informations des tables sur la (s) base de données (s).

Vous verriez deux catégories dans la sortie; L'un fait référence aux séquences associées à la clé primaire des tableaux et l'autre catégorie indique les séquences définies par l'utilisateur qui sont créées séparément (comme dans la section ci-dessus).

# SELECT RELNAME Sequence_name dans PG_CLASS WHERE RELKIND = 'S';

Comment obtenir la valeur suivante / actuelle d'une séquence

Il existe plusieurs fonctions qui peuvent être utilisées pour obtenir la valeur actuelle et suivante d'une séquence dans Postgres. La fonction NextVal imprime la valeur suivante dans une séquence en utilisant la syntaxe ci-dessous:

Sélectionnez NextVal ('Sequence-Name')

La commande écrite ci-dessous imprimera la prochaine valeur du "Linuxhint" séquence. Si vous continuez à exécuter la commande NextVal, vous obtiendrez la valeur suivante selon la condition d'incrément de la séquence. Comme le "Linuxhint" La séquence est incrémentée de 2, donc chaque valeur suivante serait imprimée après incrémentation par 2.

# Select nextVal ('linuxhint');

Une fois la valeur suivante obtenue, vous pouvez obtenir la valeur actuelle de la séquence en utilisant la fonction CurrVal. Le currval imprimera la sortie obtenue par la fonction NextVal. Par exemple, la dernière fonction NextVal a montré la sortie 7, de sorte que le résultat Currval doit être 7. De même, quelle que soit la valeur obtenue en utilisant la fonction NextVal récente, doit être imprimée par Currval. La fonction CurrVal fonctionne sur la syntaxe suivante:

Sélectionnez Currval ('Sequence-Name')

Obtenons la valeur actuelle de la séquence «LinuxHint» à l'aide de la commande mentionnée ci-dessus:

# Select currval ('linuxhint');

De plus, la fonction Currval dépend de la fonction NextVal. Si la fonction NextVal n'est pas encore appliquée à aucune séquence, vous ne pouvez pas utiliser la fonction CurrVal pour obtenir la valeur actuelle. Par exemple, si nous appliquons la fonction currval sur le «Linux» Séquence sur laquelle nous n'avons pas appliqué la fonction NextVal puis l'erreur suivante sera affichée.

# Select currval ('linux');

Cette erreur peut être résolue en exécutant la fonction NextVal sur la séquence telle que nous l'avons vécue sur le «Linux» séquence, et l'erreur est résolue.

# Select nextVal ('Linux');
# Select currval ('linux');

Comment supprimer une séquence

Vous pouvez supprimer n'importe quelle séquence de votre base de données en utilisant l'instruction de séquence Drop de Postgres. En cas de suppression de la table, une séquence appartenant à n'importe quelle colonne serait supprimée. La commande fournie ici laisse tomber «Linux» séquence.

# Drop séquence si existe Linux;

Conclusion

Généralement, qu'est-ce qui vous vient à l'esprit après avoir obtenu le séquence mot? Une liste ordonnée de nombres. Oui, le concept est également le même dans Postgres. Cet article explique le concept de la séquence et démontre sa fonctionnalité de base dans Postgres. Nous avons étudié la création de séquences de plusieurs manières de ce guide. De plus, les fonctions de valeur suivantes et actuelles des séquences sont également discutées.