Sett inn rad hvis verdier ikke allerede eksisterer i Postgresl

Insert Row If Values Don T Already Exist Postgresl



Å kjenne til og manipulere databasesystemer har gjort oss kjent med endringer i databaser. Som vanligvis innebærer å opprette, sette inn, oppdatere og slette funksjoner som brukes på bestemte tabeller. I den nåværende artikkelen vil vi se hvordan data administreres ved innsettingsmetoden. Vi må lage et bord der vi ønsker innsetting. Sett inn setning brukes til å legge til nye data i tabellerader. PostgreSQL setter inn en erklæring som dekker noen regler for vellykket gjennomføring av et søk. For det første må vi nevne tabellnavnet etterfulgt av kolonnenavn (attributter) der vi vil sette inn rader. For det andre må vi angi verdiene, atskilt med et komma etter VALUE -leddet. Til slutt må hver verdi være i samme rekkefølge som sekvensen av attributtlister er gitt mens du lager en bestemt tabell.

Syntaks

>> SETT INN INN ITABLENAME(kolonne1,kolonne) VERDIER ('Verdi1', 'verdi2');

Her er en kolonne attributtene til tabellen. Søkeordet VALUE brukes til å angi verdier. 'Verdi' er dataene i tabeller som skal legges inn.







Sette inn radfunksjoner i PostgreSQL -skall (psql)

Etter vellykket installasjon av postgresql, skriver vi inn databasenavn, portnummer og passord. Psql vil bli startet. Vi vil deretter utføre henvendelser.





Eksempel 1: Bruk INSERT til å legge til nye poster i tabeller
Etter syntaksen oppretter vi følgende spørring. For å sette inn en rad i tabellen, oppretter vi et bord som heter kunde. Den respektive tabellen inneholder 3 kolonner. Datatype for bestemte kolonner bør nevnes for å legge inn data i den kolonnen og for å unngå redundans. Forespørsel om å lage en tabell er:





>> skape bordkunde(idint,Navn varchar (40), landvarchar (40));

Etter at vi har laget tabellen, vil vi nå legge inn data ved å sette inn rader manuelt i separate spørringer. For det første nevner vi kolonnenavnet for å opprettholde nøyaktigheten av data, spesielt kolonner angående attributter. Og så vil verdier legges inn. Verdier er kodet av enkelt koma, da de skal settes inn uten endringer.



>> sett inn inn ikunde(ID,Navn, land) verdier ('1',' Alia’,’Pakistan’);

Etter hver vellykket innsetting vil utgangen være 0 1, noe som betyr at 1 rad settes inn om gangen. I spørringen som nevnt tidligere, har vi satt inn data 4 ganger. For å se resultatene bruker vi følgende spørring:

>> plukke ut*frakunde;

Eksempel 2: Bruk INSERT -setning for å legge til flere rader i en enkelt spørring
Den samme tilnærmingen brukes for å sette inn data, men ikke for å sette inn setninger mange ganger. Vi legger inn data med en gang ved å bruke en bestemt spørring; alle verdier for en rad skilles med Ved å bruke følgende spørring, vil vi oppnå den nødvendige utdata

Eksempel 3: Sett inn flere rader i en tabell basert på tall i en annen tabell
Dette eksemplet gjelder innsetting av data fra en tabell til en annen. Tenk på to tabeller, a og b. Tabell a har 2 attributter, dvs. navn og klasse. Ved å bruke en CREATE -spørring, introduserer vi en tabell. Etter at tabellen er opprettet, blir data lagt inn ved hjelp av en innsatsforespørsel.

>> skape bordtil(Navn varchar (30),klasse varchar (40));
>> Sett inn inn itilverdier ('Amna',1),('bhishma', '2'),('Javed', '3'),('Ned',4');

Fire verdier settes inn i tabellen ved hjelp av overskridende teori. Vi kan kontrollere ved å bruke utvalgte utsagn.

På samme måte vil vi lage tabell b, med attributter for alle navn og emner. De samme to spørringene vil bli brukt for å sette inn og hente posten fra den tilsvarende tabellen.

>> skape bordb(alle navn varchar(30), emne varchar(70));

Hent posten ved å velge teori.

>> plukke ut*frab;

For å sette inn verdier for tabellen b i tabellen, bruker vi følgende spørring. Denne spørringen vil fungere på en slik måte at alle navnene i tabellen b vil bli satt inn i tabellen til med telling av tall som viser antall forekomster av et bestemt tall i den respektive tabellkolonnen b . b. alle navn representerer objektfunksjonen for å spesifisere tabellen. Count (b.allnames) funksjon fungerer for å telle total forekomst. Ettersom hvert navn forekommer samtidig, vil den resulterende kolonnen ha 1 tall.

>> Sett inn inn itil(Navn,klasse) plukke utb. alle navn, tell(b. alle navn) frabgruppe avb. alle navn;

Eksempel 4: Sett inn data i rader hvis det ikke finnes
Denne spørringen brukes til å angi rader hvis den ikke er tilstede. For det første sjekker den angitte spørringen om raden allerede er tilstede eller ikke. Hvis den allerede eksisterer, blir data ikke lagt til. Og hvis data ikke er tilstede på rad, vil den nye innsettingen bli beholdt. Her er tmp en midlertidig variabel som brukes til å lagre data en stund.

>> sett inn inn ib(alle navn, emne) plukke ut*fra (plukke ut'Kinza'somalle navn, 'islamiat'somEmne) somtmphvor ikke finnes ( plukke utalle navnfrabhvoralle navn='Sundus'grense 1);

Eksempel 5: PostgreSQL Upsert Using INSERT Statement
Denne funksjonen har to varianter:

  • Oppdatering: hvis det oppstår en konflikt, hvis posten samsvarer med eksisterende data i tabellen, oppdateres den med nye data.
  • Hvis det oppstår en konflikt, ikke gjør noe : Hvis en post samsvarer med de eksisterende dataene i tabellen, hopper den over posten, eller hvis det oppstår en feil, blir den også ignorert.

I utgangspunktet danner vi en tabell med noen eksempeldata.

>> SKAPE BORDtbl2(IDINT HOVED NØKKEL,Navn KARAKTER VARIERER);

Etter å ha opprettet tabellen vil vi sette inn data i tbl2 ved å bruke spørring:

>> SETT INN INN Itbl2VERDIER (1,'uzma'),(2,'abdul'),(3,'Hamna'),(4,'fatima'),(5,'shiza'),(6,'javeria');

Hvis det oppstår en konflikt, oppdaterer du:

>>SETT INN INN Itbl2VERDIER (8,'Ri') KONFLIKT(ID) GJØRE OPPDATER SETT Navn=Ekskludert.Navn;

Først vil vi legge inn data ved hjelp av konfliktforespørselen til ID 8 og navnet Rida. Den samme spørringen vil bli brukt etter samme ID; navnet vil bli endret. Nå vil du legge merke til hvordan navn vil bli endret på samme ID i tabellen.

>> SETT INN INN Itbl2VERDIER (8,'Arbeid') KONFLIKT(ID) GJØRE OPPDATER SETT Navn =Ekskludert.Navn;

Vi har funnet ut at det var en konflikt på ID 8, så den angitte raden oppdateres.

Hvis det oppstår en konflikt, ikke gjør noe

>> SETT INN INN Itbl2VERDIER (9,'Hira') KONFLIKT(ID) GJØRE INGENTING;

Ved hjelp av denne spørringen settes det inn en ny rad. Etter det vil vi bruke hvis den samme spørringen for å se konflikten som oppsto.

>>SETT INN INN Itbl2VERDIER (9,'Hira') KONFLIKT(ID) GJØRE INGENTING;

I henhold til bildet ovenfor, vil du se at etter utførelsen av spørringen INSERT 0 0 viser ingen data er angitt.

Konklusjon

Vi har fått et glimt av forståelsesbegrepet om å sette inn rader i tabeller der data enten ikke er tilstede, eller innsetting ikke er fullført, hvis det finnes noen registrering, for å redusere redundans i databaserelasjoner.