logo

Série PostgreSQL

Dans cette section, nous allons comprendre le fonctionnement de Série PostgreSQL pseudo-type, qui permet de définir colonnes à incrémentation automatique dans les tableaux. Et nous voyons aussi exemples de la Pseudo-type série PostgreSQL .

Qu'est-ce que le pseudo-type PostgreSQL Serial ?

Dans PostgreSQL, nous avons un type particulier de générateur d'objets de base de données appelé En série , qui sert à créer une séquence d'entiers qui sont fréquemment utilisés comme Clé primaire dans un tableau.

La séquence peut être générée à l'aide du Pseudo-type SÉRIE , pendant que nous créons une nouvelle table, comme nous pouvons le voir dans la commande suivante :

 CREATE TABLE table_name( ID SERIAL ); 

PostgreSQL effectue ce qui suit si nous fournissons le Pseudo-type SÉRIE au IDENTIFIANT colonne:

classe abstraite en Java
  • Tout d'abord, PostgreSQL créera un objet séquence, puis établira la valeur suivante créée par la séquence comme valeur prédéfinie de la colonne particulière.
  • Après cela, PostgreSQL améliorera un Contrainte NOT NULL au Colonne d'identification puisqu'une séquence produit toujours un entier qui est un valeur non nulle .
  • Enfin, PostgreSQL fournira le propriétaire de la séquence au Colonne d'identification ; en sortie, l'objet séquence est supprimé lorsque la table ou Colonne d'identification est tombé.

Remarque : nous pouvons utiliser les deux commandes pour spécifier le pseudo-type Serial car les deux commandes ci-dessous sont similaires.

 CREATE TABLE table_name( ID SERIAL ); 

 CREATE SEQUENCE table_name_ID_seq; CREATE TABLE table_name ( ID integer NOT NULL DEFAULT nextval('table_name_ID_seq') ); ALTER SEQUENCE table_name_ID_seq OWNED BY table_name.ID; 

Le Pseudo-type série PostgreSQL a été classé en trois types qui sont les suivants :

    PETITE SÉRIE EN SÉRIE GRANDE SÉRIE

Nous avons le tableau suivant, qui contient tous les Pseudo-type série spécification prise en charge par PostgreSQL :

Nom Taille de stockage Gamme
PETITE SÉRIE 2 octets 1 à 32767
EN SÉRIE 4 octets 1 au 2147483647
GRANDE SÉRIE 8 octets 1 au 9223372036854775807

Syntaxe du pseudo-type PostgreSQL Serial

La syntaxe de PostgreSQL Pseudo-type série comme suit:

 variable_name SERIAL 

Exemples de type PostgreSQL SERIAL

Voyons différents exemples pour comprendre comment le Le pseudo-type PostgreSQL Serial fonctionne .

Remarque : Nous pouvons définir la contrainte PRIMARY KEY pour la colonne SERIAL car le type SERIAL ne crée pas indirectement d'index sur la colonne ni ne fait de la colonne la colonne de clé primaire.

Nous créons une nouvelle table avec l'aide de la commande CREATE et insérons quelques valeurs à l'aide de la commande INSERT.

Dans l'exemple ci-dessous, nous utilisons le CRÉER commande pour générer un Voitures table dans le Base de données de l'organisation :

 CREATE TABLE Cars( Car_id SERIAL PRIMARY KEY, Car_name VARCHAR NOT NULL, Car_model VARCHAR NOT NULL ); 

Sortir

Le Voitures La table a été créée avec succès après l'exécution des commandes ci-dessus, comme indiqué dans la capture d'écran ci-dessous :

Série PostgreSQL

Une fois la Voitures table a été générée, nous pouvons y insérer des valeurs à l'aide de la commande INSERT. Et nous pouvons utiliser le DÉFAUT mot-clé dans la commande INSERT ou omettez le nom de la colonne (Car_id) .

 INSERT INTO Cars(Car_name, Car_model) VALUES('Porche','911 Carrera'); 

Sortir

Après avoir implémenté la commande ci-dessus, nous obtiendrons le message suivant et la valeur a été insérée avec succès dans le Voitures tableau:

Série PostgreSQL

OU En utilisant le Mot-clé PAR DÉFAUT avec le nom de la colonne (Car_id) :

 INSERT INTO Cars(Car_id, Car_name, Car_model) VALUES(DEFAULT,'Audi','A8'); 

Sortir

Lors de l'implémentation de la commande ci-dessus, nous obtiendrons le message suivant : la valeur a été insérée avec succès dans le Voitures tableau:

Série PostgreSQL

Comme nous pouvons le voir dans la capture d'écran ci-dessus, PostgreSQL a inséré deux lignes dans le Voitures table avec le ID_voiture les valeurs des colonnes sont 1 et 2 .

Après avoir créé et inséré le Voitures les valeurs du tableau, nous utiliserons le SÉLECTIONNER La commande renvoie toutes les lignes du Voitures tableau:

 SELECT * FROM Cars; 

Sortir

Après avoir implémenté avec succès la commande ci-dessus, nous obtiendrons le résultat suivant :

Série PostgreSQL

Nous pouvons utiliser le pg_get_serial_sequence() fonction pour obtenir le nom de séquence d'un EN SÉRIE colonne dans une table spécifiée comme nous pouvons le voir dans la syntaxe ci-dessous :

liste de tableaux dans le tri Java
 pg_get_serial_sequence('table_name','column_name') 

Pour obtenir le valeur actuelle créé par la séquence, nous pouvons passer un nom de séquence à la fonction currval().

Dans l'exemple suivant, nous avons utilisé la courbe() fonction pour renvoyer la valeur actuelle produite par le Voitures tableau Car_id_seq objet:

 SELECT currval(pg_get_serial_sequence('Cars', 'car_id')); 

Sortir

Après avoir implémenté la commande ci-dessus, nous obtiendrons le résultat ci-dessous :

Série PostgreSQL

Nous pouvons utiliser le RETOUR Car_id clause dans la commande INSERT si nous voulons obtenir les valeurs créées par la séquence lorsque nous insérons une nouvelle ligne dans la table.

La commande ci-dessous est utilisée pour insérer une nouvelle ligne dans le Voitures table et renvoie les enregistrements générés pour la ID_voiture colonne.

 INSERT INTO Cars(Car_name,Car_model) VALUES('Jaguar', 'XK') RETURNING Car_id; 

Sortir

En exécutant la commande ci-dessus, nous obtiendrons la sortie suivante, qui renvoie le ID_voiture comme 3 :

Série PostgreSQL

Note:

  • Comme nous l'avons compris plus haut, le générateur de séquence l'opération n'est pas sécurisée pour les transactions, ce qui implique que chaque utilisateur obtiendra une valeur différente si deux bases de données parallèles les connexions tentent d'obtenir la valeur suivante d'une séquence.
  • Et le numéro de séquence de cet utilisateur sera inactif et créera un espace dans la séquence si un utilisateur peut annuler la transaction .

Exemple2

Voyons encore un exemple pour apprendre le Pseudo-type série en détail.

Nous allons donc créer une autre nouvelle table comme Légumes table à l'aide de la commande CREATE dans un tableau similaire base de données c'est Organisation avec le Veg_id colonne comme EN SÉRIE pseudo-type.

 CREATE TABLE Vegetables( Veggie_id SERIAL PRIMARY KEY, Veggie_name VARCHAR NOT NULL, Veggie_seasons VARCHAR NOT NULL ); 

Sortir

java synchroniser

Le Légumes La table a été créée avec succès après l'exécution des commandes ci-dessus, comme indiqué dans la capture d'écran ci-dessous :

Série PostgreSQL

Une fois la Légumes table a été générée, nous allons y insérer quelques valeurs à l'aide de la commande INSERT et omettre le Légumes_id colonne comme indiqué dans la commande ci-dessous :

 INSERT INTO Vegetables(Veggie_name,Veggie_seasons) VALUES('Broccoli','Spring'); 

Sortir

ordre lexicographique

Nous obtiendrons le message suivant lors de l'implémentation de la commande ci-dessus : la valeur a été insérée avec succès dans le Légumes tableau.

Série PostgreSQL

Ou bien, nous pouvons également utiliser le Défaut mot-clé et utilise le Veggie_id colonne comme indiqué dans la commande suivante :

 INSERT INTO Vegetables (Veggie_id,Veggie_seasons, Veggie_seasons) VALUES(DEFAULT, 'Sweet Potatoes','Winter'); 

Sortir

Après avoir exécuté la commande ci-dessus, nous obtiendrons le message ci-dessous, qui indique que nous pouvons soit utiliser le Mot-clé par défaut ou la ignorer le nom de la colonne , nous obtiendrons un résultat similaire :

Série PostgreSQL

Par conséquent, nous ajouterons quelques valeurs supplémentaires à la Voitures table en suivant la commande :

 INSERT INTO Vegetables(Veggie_name,Veggie_seasons) VALUES('Jalapeno Peppers','Fall'), ('Cucumbers','Summer'), ('Winter Squash','Winter'), ('Snow Peas','Spring'), ('Black Radish','All seasons'), ('Pumpkin','Fall'); 

Sortir

Après avoir exécuté la commande ci-dessus, nous obtiendrons le message ci-dessous, qui indique que la valeur a été insérée avec succès dans le Légumes tableau.

Série PostgreSQL

Après avoir créé et inséré le Légumes les valeurs du tableau, nous utiliserons le SÉLECTIONNER commande pour renvoyer toutes les lignes du Légumes tableau:

 SELECT * FROM Vegetables; 

Sortir

Après avoir implémenté avec succès la commande ci-dessus, nous obtiendrons le résultat ci-dessous :

Série PostgreSQL

Aperçu

Dans le Pseudo-type série PostgreSQL section, nous avons appris la fonctionnalité de pseudo-type Serial, qui est principalement utilisée pour créer un augmentations automatiques valeur de colonne pour une table particulière.