SQLite triggere

SQLite triggere
Reaksjonen utløses alltid av en eller annen handling utført av enhver person, eller ting. SQLite Triggers er databasesvarmetoder som blir utført/påkalt automatisk når en spesifikk databasehendelse skjer. Når du utfører visse spørsmål i databasen, er det således en mulighet for at en spesifikk trigger -spørring kan utføres som en reaksjon.

Derfor har vi bestemt oss for å dekke temaet SQLite -triggere i Ubuntu 20.04 Mens du bruker SQLite C-bibrary av SQL-databasen. La oss starte med åpningen av en terminal av Ubuntu 20.04. Det må startes med Ctrl+Alt+T, da vi må gjøre det meste av arbeidet vårt i det. Innenfor skallterminalen må du prøve ut oppdaterings- og oppgraderingsinstruksjonene kombinert med APT-pakken for å gjøre systemet ditt oppdatert, feilfri og oppgradere pakkene.

Du kan møte følgende utdata som vises nedenfor på slutten av oppdaterings- og oppgraderingsprosessen. La oss gå videre mot SQLite -databasen.

La oss starte SQLite C-pakken til en database i vårt skall av Ubuntu 20.04 Ved hjelp av nøkkelordet “Sqlite3”. Kommandoskallet for SQLite vil bli generert på skjermen som vist nedenfor.

Utløserne er alltid opprettet som et svar på noen spørsmål i en database, og spørsmålene brukes på tabellene. Vi har ingen tabell i databasen vår akkurat nå. Så vi må lage nye tabeller. For å bruke triggere, trenger vi minst 2 bord. Derfor har vi opprettet en ny tabellstudent med 5 kolonner i den (i.e., Sid, navn, RNO, merker og status.) Navnet og statuskolonnen er av teksttype mens resten av kolonnene er av int eller reell type.

Etter dette har vi opprettet nye tabelldata med tre kolonner: ID, status og post. Denne tabellen vil bli brukt på tidspunktet for å påkalle trigger. Vi har prøvd den utvalgte instruksjonen etter “*” -tegnet for å hente postene til begge nyopprettede tabeller (i.e., Student og data.) Spørringen for begge tabellene viser at tabellene er tomme.

Lag tabellstudent (Sid int Primærnøkkel ikke null, navnetekst ikke null, rno int ikke null,
Markerer ekte ikke null, status tekst ikke null);
Lag tabelldata (id int ikke null, status tekst ikke null, posttekst);
Velg * fra Student;
Velg * fra data;

La oss sette inn noen poster i studenttabellen og se om å sette inn postene i denne tabellen kan påvirke den andre tabellen “Data” eller ikke. Dermed har vi prøvd innlegget i instruksjon for å legge til totalt 5 poster i alle 5 kolonner i en tabell (i.e., Id, navn, RNO, merker og status.) Etter å ha satt inn de 5 postene med hell, har vi prøvd den utvalgte instruksjonen etterfulgt av stjerne “*” -tegnet for å vise alle postene til en tabell “Student”. Utførelsen av denne kommandoen har presentert de 5 postene på Shell -skjermen til SQLite -databasen.

Etter det må vi sjekke datatabellen hvis det er berørt eller ikke. Så vi har prøvd den utvalgte instruksjonen med “*” -tegnet også for datatabellen. Vi har funnet ut at tabellen fremdeles er tom og innsetting av data i studenttabellen ikke påvirker tabellen "data" ennå. La oss gå videre mot opprettelsen av en trigger.

Sett inn student (ID, navn, RNO, merker, status) verdier (1, "Tim", 344, 45, "pass"),
(2, "EMA", 355, 98, "Pass"), (3, "Julia", 349, 22, "Fail"), (4, "John", 335, 47, "Pass"),
(5, "Paul", 250, 25, "Fail");
Velg * fra Student;
Velg * fra data;

Så vi vil lage en ny trigger for å la innsetting av poster i den ene tabellen påvirke den andre. Dermed vil vi lage en innsatsutløser på studentbordet, slik at bruk av Create Trigger -instruksjonen på sqlite -skallet skal følges med navnet på en trigger som skal opprettes (i.e., “Jeg logger”).

Etter navnet på en trigger, må du bruke nøkkelordet "etter" sammen med spørringstypen som denne utløseren skal utføres for (i.e., Sett inn, slett, oppdatering osv.) Så vi har brukt nøkkelordet "After Sett inn" for å gjøre denne utløseren utført etter utførelsen av innsettingskommandoen etterfulgt av "ON" -klausulen sammen med navnet på en tabell som denne utløseren vil bli brukt på (i.e., på studentbordet.) Utløsertilstanden vil begynne med "Begynn" og stopper med nøkkelordet "slutt".

Innen begge disse nøkkelordene vil vi skrive triggererklæringen vår som vil bli påberopt etter utførelsen av et spesifikt innleggsspørsmål. Utløseren inneholder et innleggsspørsmål for å legge til oppføringen i datatabellen ved utførelse av innsettingsinstruksjon for studenttabellen. Kolonnen "Rid" og "Status" for datatabellen vil bruke verdiene fra studenttabellen i henhold til nøkkelordet "nytt" etterfulgt av kolonnenavnene på en studenttabell (i.e. ny.Id, ny.STATUS.) Kolonneposten for datatabellen vil bli tildelt med "Record Setted" -verdien som vist.

Lag trigger i_log etter innsetting på studenten
BEGYNNE
Sett inn data (kvitt, status, post) verdier (nye.Id, ny.Status, "post satt inn");
SLUTT;

Utløseren “I_Log” er opprettet med suksess i SQLite -databasen og er klar til bruk. Vi vil sette inn noen poster i studentbordet for å få utløseren til å bli utført automatisk ved bruken av innsatsen i instruksjon. Etter utførelsen av innsettingskommandoen har vi prøvd Select Query for å se postene til studenttabellen. Begge nye poster er lagt til i denne tabellen. Etter dette har vi prøvd å hente postene til en datatabell ved hjelp av SELECT -instruksjonen. Denne gangen viser datatabellen også 2 oppføringer som blir lagt til av den automatiske utløseren “I_Log” på innsatsspørsmålet for studenttabellen.

Sett inn student (ID, navn, RNO, merker, status) verdier (6, "Bryan", 256, 78, "Pass"),
(7, "Taylor", 441, 64, "pass");
Velg * fra Student;
Velg * fra data;

Konklusjon:

Dette var ved bruk av triggere for å utføre en spesifikk spørring om utførelsen av en annen spørring i SQLite -databasen. Vi har utført innsatsinstruksjonsutløseren i denne artikkelen. Alle trinnene er tydelig beskrevet i detalj.