Inseriu la fila si els valors no existeixen a Postgresl

Insert Row If Values Don T Already Exist Postgresl



Conèixer i manipular sistemes de gestió de bases de dades ens ha familiaritzat amb les alteracions de les bases de dades. Que normalment consisteix a crear, inserir, actualitzar i suprimir funcions aplicades a taules específiques. A l'article actual, veurem com es gestionen les dades mitjançant el mètode d'inserció. Hem de crear una taula en què vulguem inserir-la. La instrucció Insert s'utilitza per afegir dades noves a files de taules. La declaració d'insercions PostgreSQL cobreix algunes regles per a l'execució amb èxit d'una consulta. En primer lloc, hem d'esmentar el nom de la taula seguit dels noms de les columnes (atributs) on volem inserir files. En segon lloc, hem d’introduir els valors, separats per una coma després de la clàusula VALUE. Finalment, tots els valors han d’estar en el mateix ordre en què es proporciona la seqüència de llistes d’atributs mentre es crea una taula concreta.

Sintaxi

>> INSERTAR ENTABLENAME(column1,columna) VALORS ('Valor1', 'valor2');

Aquí, una columna és els atributs de la taula. La paraula clau VALUE s'utilitza per introduir valors. 'Valor' són les dades de les taules que cal introduir.







Inserció de funcions de fila a l'intèrpret d'ordres PostgreSQL (psql)

Després d’instal·lar amb èxit postgresql, introduirem el nom de la base de dades, el número de port i la contrasenya. Psql s'iniciarà. A continuació, realitzarem consultes respectivament.





Exemple 1: utilitzar INSERT per afegir registres nous a les taules
Seguint la sintaxi, crearem la següent consulta. Per inserir una fila a la taula, crearem una taula anomenada client. La taula respectiva conté 3 columnes. Cal esmentar el tipus de dades de columnes concretes per introduir dades en aquesta columna i evitar la redundància. La consulta per crear una taula és:





>> crear taulaclient(identificadorint,nom varchar (40), paísvarchar (40));

Després de crear la taula, ara introduirem dades inserint files manualment en consultes separades. En primer lloc, esmentem el nom de la columna per mantenir la precisió de les dades en determinades columnes quant als atributs. I després s’introduiran els valors. Els valors estan codificats per comes individuals, ja que s’han d’inserir sense cap alteració.



>> inserir dinsclient(identificador,nom, país) valors ('1','Alia', 'Pakistan');

Després de cada inserció correcta, la sortida serà 0 1, el que significa que s’insereix 1 fila alhora. A la consulta esmentada anteriorment, hem inserit dades 4 vegades. Per veure els resultats, utilitzarem la següent consulta:

>> seleccioneu*des declient;

Exemple 2: utilitzar instruccions INSERT per afegir diverses files en una sola consulta
El mateix enfocament s’utilitza en la inserció de dades però no en la introducció d’instruccions insert moltes vegades. Introduirem dades alhora mitjançant una consulta determinada; tots els valors d'una fila estan separats per Mitjançant la següent consulta, aconseguirem la sortida necessària

Exemple 3: INSERTAR diverses files en una taula segons els números d'una altra taula
Aquest exemple es refereix a la inserció de dades d'una taula a una altra. Penseu en dues taules, a i b. La taula a té 2 atributs, és a dir, nom i classe. En aplicar una consulta CREATE, introduirem una taula. Després de la creació de la taula, s'introduiran les dades mitjançant una consulta d'inserció.

>> crear taulaa(nom varchar (30),classe varchar (40));
>> Insereix dinsavalors ('Amna',1),('bhishma', '2'),('Javed', '3'),('A baix',4');

S’insereixen quatre valors a la taula mitjançant la teoria excedent. Ho podem comprovar mitjançant instruccions selectes.

De la mateixa manera, crearem la taula b, amb atributs de tots els noms i subjectes. S’aplicaran les mateixes 2 consultes per inserir i recuperar el registre de la taula corresponent.

>> crear taulab(allnames varchar(30), subject varchar(70));

Obteniu el registre mitjançant la teoria selectiva.

>> seleccioneu*des deb;

Per inserir valors de taula b a la taula, utilitzarem la següent consulta. Aquesta consulta funcionarà de manera que tots els noms de la taula b s'inserirà a la taula a amb el recompte de nombres que mostren el nombre d’ocurrències d’un nombre concret a la columna respectiva de la taula b . b.allnames representa la funció objecte per especificar la taula. La funció Count (b.allnames) funciona per comptar l'ocurrència total. Com que cada nom es produeix alhora, la columna resultant tindrà 1 número.

>> Insereix dinsa(nom,classe) seleccioneub.noms, comptar(b.noms) des debgrup perb.noms;

Exemple 4: INSERIR dades en files si no existeix
Aquesta consulta s'utilitza per introduir files si no hi és. En primer lloc, la consulta proporcionada comprova si la fila ja és present o no. Si ja existeix, no s'afegiran dades. I si no hi ha dades seguides, es mantindrà la nova inserció. Aquí tmp és una variable temporal que s’utilitza per emmagatzemar dades durant un temps.

>> inserir dinsb(tots els noms, subjecte) seleccioneu*des de (seleccioneu'Kinza'comtots els noms, 'islamiat'comassignatura) comtmpon no existeix ( seleccioneutots els nomsdes debontots els noms='Sundus'límit 1);

Exemple 5: PostgreSQL Upsert mitjançant instruccions INSERT
Aquesta funció té dues varietats:

  • Actualització: si es produeix un conflicte, si el registre coincideix amb les dades existents a la taula, s'actualitza amb dades noves.
  • Si es produeix un conflicte, no feu res : Si un registre coincideix amb les dades existents a la taula, omet el registre o si es funda un error, també s'ignora.

Inicialment, formarem una taula amb algunes dades de mostra.

>> CREAR TAULAtbl2(IdentificacióINT PRIMÀRIA CLAU,Nom PERSONATGE VARIANT);

Després de crear la taula, inserirem dades a tbl2 mitjançant la consulta:

>> INSERTAR ENtbl2VALORS (1,'uzma'),(2,'abdul'),(3,'Hamna'),(4,'fatima'),(5,'shiza'),(6,'Javeria');

Si es produeix un conflicte, actualitzeu:

>>INSERTAR ENtbl2VALORS (8,'Passeig') ACTIVATCONFLICTE(Identificació) FER ACTUALITZACIÓ CONJUNT Nom=Exclòs.Nom;

Al principi, introduirem dades mitjançant la consulta de conflicte de l’identificador 8 i el nom de Rida. La mateixa consulta s'utilitzarà seguint el mateix identificador; es canviarà el nom. Ara notareu com es canviaran els noms al mateix identificador de la taula.

>> INSERTAR ENtbl2VALORS (8,'Treball') ACTIVATCONFLICTE(Identificació) FER ACTUALITZACIÓ CONJUNT Nom =Exclòs.Nom;

Hem detectat que hi havia un conflicte a l'identificador 8, de manera que la fila especificada s'actualitza.

Si es produeix un conflicte, no feu res

>> INSERTAR ENtbl2VALORS (9,'Hira') ACTIVATCONFLICTE(Identificació) FER RES;

Mitjançant aquesta consulta, s'insereix una nova fila. Després d'això, utilitzarem la mateixa consulta per veure el conflicte que es va produir.

>>INSERTAR ENtbl2VALORS (9,'Hira') ACTIVATCONFLICTE(Identificació) FER RES;

Segons la imatge anterior, veureu que després de l'execució de la consulta, INSERT 0 0 mostra que no s'introdueixen dades.

Conclusió

Hem vist el concepte d’entendre la inserció de files en taules on les dades no estan presents o bé no s’acaba d’inserir, si es troba algun registre, per reduir la redundància en les relacions de bases de dades.