Deux méthodes pour l'incrémentation automatique de PostgreSQL
Lors de la création d'une base de données, vous devez disposer d'une clé primaire pour chaque table afin de garantir qu'aucun doublon n'apparaisse dans les tables. Une façon de créer les clés primaires consiste à utiliser la fonction d'incrémentation automatique pour le type de données INT. PostgreSQL génère la valeur de clé primaire pour toutes les entrées, libérant ainsi le développeur des tracas liés à la saisie manuelle de la clé primaire.
Il existe deux approches que vous pouvez utiliser pour créer une incrémentation automatique dans votre base de données PostgreSQL.
Méthode 1 : Utilisation du pseudo-type SERIAL
La manière par défaut de créer une incrémentation automatique pour les clés primaires de votre base de données consiste à utiliser le mot-clé SERIEL. Lorsqu'il est utilisé, le pseudo-type SERIAL crée une séquence pour générer les valeurs. Il note la valeur suivante dans la séquence et chaque fois que vous insérez une nouvelle valeur, une identité unique lui est attribuée.
Notez que cet incrément automatique est affecté à un type de données INT et est supprimé une fois la table ou la colonne supprimée.
Voici la syntaxe pour créer un incrémentation automatique :
CRÉER TABLEAU NOM DE LA TABLE ( id type_données SÉRIE ) ;
Pour notre cas, créons une table nommée « détails » qui contient le « user_id » comme notre incrémentation automatique et notre clé primaire. Nous incluons également deux autres colonnes.
Lorsque nous voulons insérer les valeurs dans notre table, nous insérons uniquement pour les autres colonnes et laissons de côté la colonne à incrémentation automatique car ses valeurs sont générées automatiquement. Voici un exemple où nous ajoutons cinq entrées à notre table :
Lorsque nous utilisons l'instruction SELECT pour vérifier les enregistrements de la table, notez que la colonne « user_id » contient des identités uniques qui, dans notre cas, sont des nombres commençant à 1. Voilà comment effectuer l'auto-incrémentation PostgreSQL en utilisant le pseudo-type SERIAL.
Méthode 2 : créer une séquence
Lorsque vous utilisez le pseudo-type SERIAL pour créer les valeurs d'incrémentation automatique, vous ne contrôlez pas la façon dont vos identités uniques sont créées. Pour l'exemple précédent, nous avons vu que nos identités uniques partent de 1. Cependant, si vous souhaitez contrôler ces valeurs, disons que vous souhaitez définir à quel moment commencer à les générer, vous devez créer une séquence personnalisée.
PostgreSQL a l'option SEQUENCE où vous pouvez spécifier le nom de la colonne à utiliser pour l'auto-incrémentation et définir la valeur de départ de la colonne. Par exemple, si nous voulons commencer les valeurs à partir de 100, nous créons la séquence personnalisée suivante :
CREATE SEQUENCE nom_colonne valeur_début ;
Après avoir créé la séquence, vous pouvez maintenant créer votre table. Notez que vous devez utiliser le même nom de colonne que celui pour lequel vous avez créé une séquence, comme « nextval('holder') » pour la table créée. De cette façon, PostgreSQL référence la séquence pour savoir quel ordre suivre lors de la génération de l'identité unique des colonnes.
Nous exécutons la commande suivante pour créer notre table :
Continuez à insérer les valeurs dans le tableau créé pour les colonnes pertinentes.
Lorsque nous exécutons la requête « select » pour lister les entrées de la table, nous pouvons voir que nous avons réussi à contrôler notre incrémentation automatique. La colonne « user_id » commence sa valeur à 100 et génère les valeurs suivantes pour les autres entrées que nous insérons dans la table.
C'est l'autre façon de créer l'auto-incrémentation pour PostgreSQL.
Conclusion
La création d'un incrément automatique est bénéfique pour créer un caractère unique dans votre table. Lorsque vous souhaitez définir une clé primaire pour votre table, utilisez la fonction d'incrémentation automatique pour le type de données INT. PostgreSQL génère automatiquement les valeurs, garantissant qu'aucun doublon n'existe dans votre table. Nous avons défini comment créer l'incrémentation automatique pour PostgreSQL et fourni deux exemples des deux méthodes que vous pouvez utiliser. Les deux méthodes sont applicables selon le scénario que vous avez. Essayez-les!