Insérer une ligne si les valeurs n'existent pas déjà dans Postgresl

Insert Row If Values Don T Already Exist Postgresl



Connaître et manipuler les systèmes de gestion de bases de données nous a familiarisés avec les modifications apportées aux bases de données. Ce qui implique généralement la création, l'insertion, la mise à jour et la suppression de fonctions appliquées à des tables spécifiques. Dans le présent article, nous verrons comment les données sont gérées par la méthode d'insertion. Nous devons avoir à créer une table dans laquelle nous voulons l'insertion. L'instruction Insert est utilisée pour l'ajout de nouvelles données dans des lignes de tableaux. L'instruction d'insertion PostgreSQL couvre certaines règles pour l'exécution réussie d'une requête. Tout d'abord, nous devons mentionner le nom de la table suivi des noms de colonnes (attributs) où nous voulons insérer des lignes. Deuxièmement, nous devons entrer les valeurs, séparées par une virgule après la clause VALUE. Enfin, chaque valeur doit être dans le même ordre que la séquence de listes d'attributs est fournie lors de la création d'une table particulière.

Syntaxe

>> INSÉRER DANSNOM DE LA TABLE(colonne1,colonne) VALEURS ('valeur1', 'valeur2');

Ici, une colonne correspond aux attributs de la table. Le mot-clé VALUE est utilisé pour saisir des valeurs. La « valeur » est la donnée des tableaux à saisir.







Insertion de fonctions de ligne dans le shell PostgreSQL (psql)

Après une installation réussie de postgresql, nous entrerons le nom de la base de données, le numéro de port et le mot de passe. Psql sera lancé. Nous effectuerons ensuite des requêtes respectivement.





Exemple 1 : Utilisation de INSERT pour ajouter de nouveaux enregistrements aux tables
En suivant la syntaxe, nous allons créer la requête suivante. Pour insérer une ligne dans le tableau, nous allons créer un tableau nommé client. Le tableau respectif contient 3 colonnes. Le type de données de colonnes particulières doit être mentionné pour saisir des données dans cette colonne et éviter la redondance. La requête pour créer une table est :





>> créer tableclient(identifiantentier,Nom varchar (40), paysvarchar (40));

Après avoir créé la table, nous allons maintenant saisir les données en insérant des lignes manuellement dans des requêtes distinctes. Tout d'abord, nous mentionnons le nom de la colonne pour maintenir l'exactitude des données dans des colonnes particulières concernant les attributs. Et puis, les valeurs seront saisies. Les valeurs sont codées par des virgules simples, car elles doivent être insérées sans aucune modification.



>> insérer dansclient(identifiant,Nom, pays) valeurs ('1',« Alia », « Pakistan »);

Après chaque insertion réussie, la sortie sera 0 1, ce qui signifie qu'une ligne est insérée à la fois. Dans la requête mentionnée précédemment, nous avons inséré des données 4 fois. Pour visualiser les résultats, nous utiliserons la requête suivante :

>> sélectionner*declient;

Exemple 2 : Utilisation de l'instruction INSERT pour ajouter plusieurs lignes dans une seule requête
La même approche est utilisée pour insérer des données mais pas plusieurs fois pour introduire des instructions insert. Nous entrerons les données immédiatement en utilisant une certaine requête ; toutes les valeurs d'une ligne sont séparées par En utilisant la requête suivante, nous atteindrons la sortie requise

Exemple 3 : INSÉRER plusieurs lignes dans une table en fonction des nombres d'une autre table
Cet exemple concerne l'insertion de données d'une table à une autre. Considérons deux tableaux, a et b. La table a a 2 attributs, c'est-à-dire le nom et la classe. En appliquant une requête CREATE, nous allons introduire une table. Après la création de la table, les données seront saisies à l'aide d'une requête d'insertion.

>> créer tableà(Nom varchar (30),classer varchar (40));
>> Insérer dansàvaleurs (« Amna »,1),('bhishma','2'),('javed','3'),('Vers le bas',4');

Quatre valeurs sont insérées dans le tableau en utilisant la théorie du dépassement. Nous pouvons vérifier en utilisant des instructions select.

De même, nous allons créer la table b, ayant les attributs de tous les noms et sujets. Les 2 mêmes requêtes seront appliquées pour insérer et récupérer l'enregistrement de la table correspondante.

>> créer tableb(tous les noms varchar(30), sujet varchar(70));

Récupérez le record par la théorie choisie.

>> sélectionner*deb;

Pour insérer des valeurs de table b dans le tableau, nous utiliserons la requête suivante. Cette requête fonctionnera de telle sorte que tous les noms de la table b sera inséré dans le tableau à avec le comptage des nombres qui montrent le nombre d'occurrences d'un nombre particulier dans la colonne respective du tableau b . b.allnames représente la fonction objet pour spécifier la table. La fonction Count (b.allnames) fonctionne pour compter le nombre total d'occurrences. Comme chaque nom se produit en même temps, la colonne résultante aura 1 numéro.

>> Insérer dansà(Nom,classer) sélectionnerb.allnames, compter(b.tous les noms) debgrouper parb.tous les noms ;

Exemple 4 : INSÉRER les données dans les lignes si elles n'existent pas
Cette requête permet de saisir des lignes si elle n'est pas présente. Tout d'abord, la requête fournie vérifie si la ligne est déjà présente ou non. S'il existe déjà, les données ne sont pas ajoutées. Et si les données ne sont pas présentes dans une ligne, la nouvelle insertion sera maintenue. Ici, tmp est une variable temporaire utilisée pour stocker des données pendant un certain temps.

>> insérer dansb(tous les noms, sujet) sélectionner*de (sélectionner« Kinza »commeallnames, 'islamiat'commematière) commetmp ne pas existe ( sélectionnertous les nomsdebtous les noms=« Sundu »limite 1);

Exemple 5 : PostgreSQL Upsert utilisant l'instruction INSERT
Cette fonction a deux variétés :

  • Mise à jour : si un conflit survient, si l'enregistrement correspond aux données existantes dans la table, il est mis à jour avec de nouvelles données.
  • Si un conflit survient, ne faites rien : Si un enregistrement correspond aux données existantes dans la table, il ignore l'enregistrement, ou si une erreur est détectée, il est également ignoré.

Dans un premier temps, nous allons former un tableau avec quelques exemples de données.

>> CRÉER TABLEtbl2(identifiantINT PRIMAIRE CLÉ,Nom CARACTÈRE VARIANT);

Après avoir créé la table, nous insérerons des données dans tbl2 en utilisant la requête :

>> INSÉRER DANStbl2VALEURS (1,'uzma'),(2,'abdul'),(3,'Hamna'),(4,'fatima'),(5,'shiza'),(6,'javéria');

Si un conflit survient, mettez à jour :

>>INSÉRER DANStbl2VALEURS (8,'Balade') AUCONFLIT(identifiant) FAIRE METTRE À JOUR ENSEMBLE Nom=Exclu.Nom;

Dans un premier temps, nous entrerons les données en utilisant la requête de conflit de l'identifiant 8 et le nom Rida. La même requête sera utilisée après le même identifiant ; le nom sera changé. Vous remarquerez maintenant comment les noms seront modifiés sur le même identifiant dans la table.

>> INSÉRER DANStbl2VALEURS (8,'Travail') AUCONFLIT(identifiant) FAIRE METTRE À JOUR ENSEMBLE Nom =Exclu.Nom;

Nous avons trouvé qu'il y avait un conflit sur l'ID 8, donc la ligne spécifiée est mise à jour.

Si un conflit survient, ne faites rien

>> INSÉRER DANStbl2VALEURS (9,'Hira') AUCONFLIT(identifiant) FAIRE RIEN;

A l'aide de cette requête, une nouvelle ligne est insérée. Après cela, nous utiliserons if la même requête pour voir le conflit qui s'est produit.

>>INSÉRER DANStbl2VALEURS (9,'Hira') AUCONFLIT(identifiant) FAIRE RIEN;

Selon l'image ci-dessus, vous verrez qu'après l'exécution de la requête INSERT 0 0 montre qu'aucune donnée n'est saisie.

Conclusion

Nous avons jeté un coup d'œil au concept d'insertion de lignes dans des tableaux où les données ne sont pas présentes ou l'insertion n'est pas terminée, si un enregistrement est trouvé, afin de réduire la redondance dans les relations de base de données.