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 :
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 :
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:
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:
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 :
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 :
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 :
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 :
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.
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 :
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.
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 :
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.