Comment configurer la clé primaire à incrémentation automatique de PostgreSQL ?

How Setup Postgresql Auto Increment Primary Key



Il peut arriver que vous construisiez et mainteniez des tables dans PostgreSQL lorsque vous souhaitez des valeurs particulières pour une colonne générée à la demande. Cela serait particulièrement vrai pour les colonnes id qui servent de clé primaire de la table. Heureusement, le pseudo-type SERIAL permet de rendre pratique une série d'entiers auto-incrémentés. Une série est un type d'objet de base de données dans PostgreSQL qui produit une série d'index ou d'entiers. Une séquence PostgreSQL produit une chaîne d'entiers distincts, ce qui la rend appropriée pour être utilisée comme clé primaire lors de la génération d'une nouvelle table. Nous vous montrerons ce que menas d'auto-incrémentation dans PostgreSQL et nous utiliserons le pseudo-type SERIAL tout au long de ce guide.

Syntaxe:

La syntaxe générale pour créer la clé primaire à incrémentation automatique est la suivante :







>>CREATE TABLE nom_table( identifiantEN SÉRIE);

Voyons maintenant plus en détail la déclaration CREATE TABLE :



  • PostgreSQL génère d'abord une entité de série. Il produit la valeur suivante de la série et la définit comme valeur de référence par défaut du champ.
  • PostgreSQL applique la restriction implicite NOT NULL à un champ id puisqu'une série produit des valeurs numériques.
  • Le champ id sera attribué en tant que détenteur de la série. Si le champ id ou la table elle-même est omis, la séquence sera ignorée.

Pour obtenir le concept d'auto-incrémentation, assurez-vous que PostgreSQL est monté et configuré sur votre système avant de continuer avec les illustrations de ce guide. Ouvrez le shell de ligne de commande PostgreSQL depuis le bureau. Ajoutez votre nom de serveur sur lequel vous souhaitez travailler, sinon laissez-le par défaut. Écrivez le nom de la base de données qui se trouve dans votre serveur sur lequel vous souhaitez travailler. Si vous ne voulez pas le changer, laissez-le par défaut. Nous utiliserons la base de données de test, c'est pourquoi nous l'avons ajoutée. Vous pouvez également travailler sur le port par défaut 5432, mais vous pouvez également le modifier. En fin de compte, vous devez fournir le nom d'utilisateur pour la base de données que vous choisissez. Laissez-le par défaut si vous ne voulez pas le changer. Tapez votre mot de passe pour le nom d'utilisateur sélectionné et appuyez sur Entrée à partir du clavier pour commencer à utiliser le shell de commande.







Utilisation du mot-clé SERIAL comme type de données :

Lorsque nous créons une table, nous n'ajoutons généralement pas le mot-clé SERIAL dans le champ de la colonne principale. Cela signifie que nous devons ajouter les valeurs à la colonne de clé primaire tout en utilisant l'instruction INSERT. Mais lorsque nous utilisons le mot-clé SERIAL dans notre requête lors de la création d'une table, nous ne devrions pas avoir besoin d'ajouter des valeurs de colonne primaire lors de l'insertion des valeurs. Jetons-y un coup d'œil.

Exemple 01 :

Créez une table Test avec deux colonnes id et name. L'ID de colonne a été défini comme colonne de clé primaire car son type de données est SERIAL. D'autre part, le nom de la colonne est défini comme le type de données TEXT NOT NULL. Essayez la commande ci-dessous pour créer un tableau et le tableau sera créé efficacement, comme le montre l'image ci-dessous.



>>CRÉER UNE TABLE( identifiantSERIAL PRIMARY KEY, nom TEXT NOT NULL);

Insérons quelques valeurs dans le nom de la colonne de la table TEST nouvellement créée. Nous n'ajouterons aucune valeur à l'identifiant de la colonne. Vous pouvez voir que les valeurs ont été insérées avec succès à l'aide de la commande INSERT comme indiqué ci-dessous.

>>INSÉRER DANS Test(Nom)VALEURS(« Aqsa »),('Rimsha'),('Khan');

Il est temps de vérifier les enregistrements de la table « Test ». Essayez l'instruction SELECT ci-dessous dans le shell de commande.

>>SÉLECTIONNER*DE Test;

À partir de la sortie ci-dessous, vous pouvez remarquer que l'ID de colonne contient automatiquement des valeurs, même si nous n'avons ajouté aucune valeur à partir de la commande INSERT en raison du type de données SERIAL que nous avons spécifié pour l'ID de colonne. C'est ainsi que le type de données SERIAL fonctionne tout seul.

Exemple 02 :

Une autre façon de vérifier la valeur de la colonne de type de données SERIAL consiste à utiliser le mot clé RETURNING dans la commande INSERT. La déclaration ci-dessous crée une nouvelle ligne dans la table Test et renvoie la valeur du champ id :

>>INSÉRER DANS Test(Nom)VALEURS('Hassam')RETOURidentifiant;

En vérifiant les enregistrements de la table Test à l'aide de la requête SELECT, nous avons obtenu la sortie ci-dessous telle qu'affichée dans l'image. Le cinquième enregistrement a été efficacement ajouté au tableau.

>>SÉLECTIONNER*DE Test;

Exemple 03 :

La version alternative de la requête d'insertion ci-dessus utilise le mot clé DEFAULT. Nous utiliserons le nom d'ID de colonne dans la commande INSERT et dans la section VALUES, nous lui donnerons le mot clé DEFAULT comme valeur. La requête ci-dessous fonctionnera de la même manière lors de l'exécution.

>>INSÉRER DANS Test(identifiant, Nom)VALEURS(PAR DÉFAUT, « course »);

Vérifions à nouveau la table à l'aide de la requête SELECT comme suit :

>>SÉLECTIONNER*DE Test;

Vous pouvez voir à partir de la sortie ci-dessous, la nouvelle valeur a été ajoutée tandis que l'ID de colonne a été incrémenté par défaut.

Exemple 04 :

Le numéro de séquence du champ de colonne SERIAL peut être trouvé dans une table dans PostgreSQL. La méthode pg_get_serial_sequence() est utilisée pour accomplir cela. Nous devons utiliser la fonction currval() avec la méthode pg_get_serial_sequence(). Dans cette requête, nous fournirons le nom de la table et son nom de colonne SERIAL dans les paramètres de la fonction pg_get_serial_sequence(). Comme vous pouvez le voir, nous avons spécifié la table Test et l'identifiant de la colonne. Cette méthode est utilisée dans l'exemple de requête ci-dessous :

>>SÉLECTIONNER la valeur(pg_get_serial_sequence('Test', 'identifiant'));

Il convient de noter que notre fonction currval() nous aide à extraire la valeur la plus récente de la séquence, qui est 5. L'image ci-dessous est une illustration de ce à quoi pourraient ressembler les performances.

Conclusion:

Dans ce tutoriel, nous avons montré comment utiliser le pseudo-type SERIAL pour s'auto-incrémenter dans PostgreSQL. En utilisant une série dans PostgreSQL, il est simple de créer un ensemble de nombres à incrémentation automatique. Avec un peu de chance, vous pourrez appliquer le champ SÉRIE aux descriptions de table en utilisant nos illustrations comme référence.