Introduceți rândul dacă valorile nu există deja în Postgresl

Insert Row If Values Don T Already Exist Postgresl



Cunoașterea și manipularea sistemelor de gestionare a bazelor de date ne-au familiarizat cu modificările legate de bazele de date. Ceea ce implică de obicei crearea, inserarea, actualizarea și ștergerea funcțiilor aplicate pe anumite tabele. În articolul actual, vom vedea cum sunt gestionate datele prin metoda de inserare. Trebuie să creăm un tabel în care dorim inserarea. Instrucțiunea Insert este utilizată pentru adăugarea de date noi în rânduri de tabele. Instrucțiunea de inserare PostgreSQL acoperă câteva reguli pentru executarea cu succes a unei interogări. În primul rând trebuie să menționăm numele tabelului urmat de numele coloanelor (atribute) unde dorim să inserăm rânduri. În al doilea rând, trebuie să introducem valorile, separate printr-o virgulă după clauza VALUE. În cele din urmă, fiecare valoare trebuie să fie în aceeași ordine în care este furnizată secvența listelor de atribute în timpul creării unui anumit tabel.

Sintaxă

>> INTRODUCE ÎNTABLENAME(coloana1,coloană) VALORI („Valoare1”, „valoare2”);

Aici, o coloană este atributele tabelului. Cuvântul cheie VALUE este utilizat pentru a introduce valori. „Valoare” reprezintă datele tabelelor care trebuie introduse.







Inserarea funcțiilor de rând în shell-ul PostgreSQL (psql)

După instalarea cu succes a postgresql, vom introduce numele bazei de date, numărul portului și parola. Psql va fi inițiat. Apoi vom efectua interogări, respectiv.





Exemplul 1: Utilizarea INSERT pentru a adăuga înregistrări noi în tabele
În urma sintaxei, vom crea următoarea interogare. Pentru a insera un rând în tabel, vom crea un tabel numit client. Tabelul respectiv conține 3 coloane. Tipul de date al anumitor coloane ar trebui menționat pentru a introduce date în coloana respectivă și pentru a evita redundanța. Interogarea pentru crearea unui tabel este:





>> crea masaclient(idint,Nume varchar (40), țarăvarchar (40));

După crearea tabelului, vom introduce acum date inserând rânduri manual în interogări separate. În primul rând, menționăm numele coloanei pentru a menține acuratețea datelor în anumite coloane cu privire la atribute. Și apoi, valorile vor fi introduse. Valorile sunt codificate de virgule simple, deoarece trebuie inserate fără nicio modificare.



>> introduce înclient(id,Nume, țară) valori („1”,„Alia”, „Pakistan”);

După fiecare inserare reușită, ieșirea va fi 0 1, ceea ce înseamnă că se introduce 1 rând la rând. În interogarea menționată anterior, am inserat date de 4 ori. Pentru a vizualiza rezultatele, vom folosi următoarea interogare:

>> Selectați*dinclient;

Exemplul 2: Utilizarea instrucțiunii INSERT pentru adăugarea mai multor rânduri într-o singură interogare
Aceeași abordare este utilizată la inserarea datelor, dar nu la introducerea instrucțiunilor insert de multe ori. Vom introduce date simultan utilizând o anumită interogare; toate valorile unui rând sunt separate prin Folosind următoarea interogare, vom obține rezultatul necesar

Exemplul 3: INSERAȚI mai multe rânduri într-un tabel pe baza numerelor dintr-un alt tabel
Acest exemplu se referă la inserarea datelor dintr-un tabel în altul. Luați în considerare două tabele, a și b. Tabelul a are 2 atribute, și anume, numele și clasa. Prin aplicarea unei interogări CREATE, vom introduce un tabel. După crearea tabelului, datele vor fi introduse utilizând o interogare de inserare.

>> crea masala(Nume varchar (30),clasă varchar (40));
>> Introduce înlavalori („Amna”,1),(„bhishma”, „2'),(„Javed”, „3'),('Jos',4');

Patru valori sunt inserate în tabel folosind teoria depășirii. Putem verifica folosind instrucțiuni selectate.

În mod similar, vom crea tabelul b, având atribute ale tuturor numelor și subiectelor. Aceleași 2 interogări vor fi aplicate pentru a insera și pentru a prelua înregistrarea din tabelul corespunzător.

>> crea masab(allnames varchar(30), subiect varchar(70));

Aduceți înregistrarea prin teoria selectată.

>> Selectați*dinb;

Pentru a insera valorile tabelului b în tabel, vom folosi următoarea interogare. Această interogare va funcționa în așa fel încât toate numele din tabel b va fi inserat în tabel la cu numărarea numerelor care arată numărul aparițiilor unui anumit număr în coloana respectivă a tabelului b . b.allnames reprezintă funcția obiect pentru a specifica tabelul. Funcția Count (b.allnames) funcționează pentru a număra apariția totală. Deoarece fiecare nume apare simultan, coloana rezultată va avea 1 număr.

>> Introduce înla(Nume,clasă) Selectațib. nume, numără(b.nume) dinbgrup deb.nume;

Exemplul 4: INSERAȚI date în rânduri dacă nu există
Această interogare este utilizată pentru a introduce rânduri dacă nu este prezentă. În primul rând, interogarea furnizată verifică dacă rândul este deja prezent sau nu. Dacă există deja, atunci datele nu sunt adăugate. Și dacă datele nu sunt prezente la rând, noua inserare va fi păstrată. Aici tmp este o variabilă temporară utilizată pentru a stoca date de ceva timp.

>> introduce înb(allnames, subiect) Selectați*din (Selectați„Kinza”la fel deallnames, „islamiat”la fel desubiect) la fel detmpUnde nu există ( SelectațiallnamesdinbUndeallnames=„Sundus”limită 1);

Exemplul 5: PostgreSQL Upsert folosind instrucțiunea INSERT
Această funcție are două varietăți:

  • Actualizare: dacă apare un conflict, dacă înregistrarea se potrivește cu datele existente în tabel, este actualizată cu date noi.
  • Dacă apare un conflict, nu faceți nimic : Dacă o înregistrare se potrivește cu datele existente în tabel, aceasta omite înregistrarea sau, dacă se dovedește o eroare, este ignorată.

Inițial, vom forma un tabel cu câteva exemple de date.

>> CREA MASAtbl2(IDINT PRIMAR CHEIE,Nume CARACTERUL VARIANTE);

După crearea tabelului, vom insera date în tbl2 utilizând interogarea:

>> INTRODUCE ÎNtbl2VALORI (1,„uzma”),(2,„abdul”),(3,„Hamna”),(4,„fatima”),(5,'shiza'),(6,„javeria”);

Dacă apare un conflict, actualizați:

>>INTRODUCE ÎNtbl2VALORI (8,„Plimbare”) PECONFLICT(ID) DO ACTUALIZAȚI A STABILIT Nume=Exclus.Nume;

La început, vom introduce date folosind interogarea de conflict a id-ului 8 și numele Rida. Aceeași interogare va fi utilizată urmând același id; numele va fi schimbat. Acum veți observa cum vor fi schimbate numele pe același id din tabel.

>> INTRODUCE ÎNtbl2VALORI (8,'Muncă') PECONFLICT(ID) DO ACTUALIZAȚI A STABILIT Nume =Exclus.Nume;

Am constatat că a existat un conflict la ID 8, astfel încât rândul specificat este actualizat.

Dacă apare un conflict, nu faceți nimic

>> INTRODUCE ÎNtbl2VALORI (9,„Hira”) PECONFLICT(ID) DO NIMIC;

Folosind această interogare, se introduce un rând nou. După aceea, vom folosi dacă aceeași interogare pentru a vedea conflictul care a avut loc.

>>INTRODUCE ÎNtbl2VALORI (9,„Hira”) PECONFLICT(ID) DO NIMIC;

Conform imaginii de mai sus, veți vedea că după executarea interogării INSERT 0 0 arată că nu sunt introduse date.

Concluzie

Am aruncat o privire asupra conceptului de înțelegere a inserării rândurilor în tabele în care datele fie nu sunt prezente, fie inserarea nu este finalizată, dacă se găsește o înregistrare, pentru a reduce redundanța în relațiile cu baza de date.