Hjem Personlig finansiering Slik håndterer du SQL-betingelser - dummies

Slik håndterer du SQL-betingelser - dummies

Innholdsfortegnelse:

Video: Python Web Apps with Flask by Ezra Zigmond 2025

Video: Python Web Apps with Flask by Ezra Zigmond 2025
Anonim

Du kan få programmet til å se på SQLSTATE etter utførelsen av hver SQL-setning. Det er flere muligheter for hva du kanskje vil gjøre neste. Hva gjør du med kunnskapen du får?

  • Hvis du finner en klassekode på 00 , vil du sannsynligvis ikke gjøre noe. Du vil at utførelsen skal fortsette som du opprinnelig planla.

  • Hvis du finner en klassekode på 01 eller 02 , vil du kanskje foreta en spesiell handling. Hvis du forventet "Advarsel" eller "Ikke funnet" indikasjon, vil du sannsynligvis la utførelsen fortsette. Hvis du ikke forventer noen av disse klassekodene, vil du sannsynligvis ha eksekveringsgren til en prosedyre som er spesielt utviklet for å håndtere det uventede, men ikke helt uventede, advarsel eller ikke funnet resultat.

  • Hvis du mottar noen annen klassekode, er noe galt. Du bør grense til en unntakshåndteringsprosedyre. Hvilken prosedyre du velger å avgrense, avhenger av innholdet i de tre underklassekarakterene, samt de to klassetegnene i SQLSTATE. Hvis flere forskjellige unntak er mulige, bør det være en unntakshåndteringsprosedyre for hver enkelt, fordi forskjellige unntak ofte krever forskjellige svar.

    Du kan kanskje rette feil eller finne løsninger. Andre feil kan være dødelig; Ingen vil dø, men du må ende opp med å avslutte søknaden.

Handler erklæring

Du kan sette en tilstandshåndterer i en sammensatt setning. For å opprette en tilstandshåndterer må du først deklarere tilstanden den skal håndtere. Tilstanden erklært kan være en slags unntak, eller det kan bare være noe som er sant. Her er noen mulige forhold.

Tilstand Beskrivelse
SQLSTATE VERDI

'xxyyy'

Spesifikk SQLSTATE verdi
SQLEXCEPTION SQLSTATE klasse annet enn 00, 01 eller 02 > SQLWARNING
SQLSTATE klasse 01 IKKE FUNDET
SQLSTATE klasse 02 Følgende er et eksempel på en tilstandsdeklarasjon:

BEGIN DECLARE constraint_violation CONDITION FOR SQLSTATE VALUE '23000'; SLUTT;

Dette eksemplet er ikke realistisk, fordi det ofte er SQL-setningen som kan føre til at tilstanden oppstår - så vel som håndterer som ville bli påkalt hvis tilstanden oppsto - vil også være vedlagt i BEGIN … END-strukturen.

Handler-handlinger og håndteringseffekter

Hvis en tilstand oppstår som påkaller en handler, utføres handlingen som er angitt av handleren. Denne handlingen er en SQL-setning, som kan være en sammensatt setning. Hvis håndteringsaksjonen fullføres vellykket, utfører handler-effekten.Følgende er en liste over de tre mulige håndteringseffekter:

FORTSETT: Fortsett kjøringen umiddelbart etter setningen som forårsaket at handleren ble påkalt.

  • EXIT: Fortsett kjøring etter sammensatt setning som inneholder håndterer.
  • UNDO: Løsne arbeidet til de forrige setningene i sammensatt setning og fortsett deretter utførelsen etter setningen som inneholder handleren.

  • Hvis håndterer kan rette opp hvilket problem som påberopes handleren, kan FORTSATT effekten være passende. EXIT-effekten kan være hensiktsmessig dersom håndtereren ikke løste problemet, men endringene som er gjort i sammensatte setningen behøver ikke å bli fortrykt. UNDO-effekten er hensiktsmessig hvis du vil returnere databasen til tilstanden den var i før sammensatt setningen begynte å bli kjørt.

Vurder følgende eksempel:

BEGIN ATOMIC DECLARE constraint_violation CONDITION FOR SQLSTATE VALUE '23000'; ERKLÆR UNDO HANDLER FOR begrensning_violering RESIGNAL; INSERT TIL elever (StudentID, Fname, Lname) VALUES (: sid,: sfname,: slname); INSERT i roster (ClassID, Class, StudentID) VALUES (: cid,: cname,: sid); SLUTT;

Hvis en av INSERT-setningene forårsaker et begrensningsbrudd, for eksempel å prøve å legge til en post med en primærnøkkel som dupliserer en primærnøkkel allerede i tabellen, antar SQLSTATE en verdi på '23000', og setter dermed betingelsen for begrensning_violering til en sann verdi.

Denne handlingen gjør at håndtereren UNDO gjør noen endringer som er gjort i noen tabeller med enten INSERT-kommandoen. RESIGNAL-setningen overfører kontrollen tilbake til prosedyren som kalte den gjeldende kjøringsprosedyren.

Hvis begge INSERT-setningene utføres, fortsetter kjøringen med setningen som følger END-søkeordet.

ATOMIC-nøkkelordet er obligatorisk når en håndterings effekt er UNDO. Dette er ikke tilfelle for håndtere som har effekt enten CONTINUE eller EXIT.

Slik håndterer du SQL-betingelser - dummies

Redaktørens valg

Dialogboksen Velg datakilde i Excel 2013 - dummies

Dialogboksen Velg datakilde i Excel 2013 - dummies

I Excel 2013, når du klikker på Velg Datakommandoknapp på fanen Design i kategorien Kontekstkonfigurasjon (eller trykk Alt + JCE), Excel åpner en dialogboksen Velg datakilde. Kontrollene i denne dialogboksen gjør at du kan gjøre følgende endringer i kildedataene: Endre rekkevidden av data som er ...

Tips og triks for å skrive inn data i Excel 2007 - dummies

Tips og triks for å skrive inn data i Excel 2007 - dummies

Når du er klar til å skrive inn data til et regneark i en Microsoft Excel 2007-arbeidsbok, finnes det noen få enkle retningslinjer (en slags datatilgangsmetikk) som du bør huske på: Prøv å organisere informasjonen din i tabeller med data som bruker tilstøtende (nærliggende) kolonner og rader . Start tabellene i øvre venstre hjørne ...

Tips og triks for å skrive inn data i Excel 2010 - dummies

Tips og triks for å skrive inn data i Excel 2010 - dummies

Når du er klar til å legge til data til et regneark i en Microsoft Excel 2010-arbeidsbok, finnes det noen få enkle retningslinjer (en slags datatilgangsmetikk) som du bør huske på: Prøv å organisere informasjonen din i tabellene med data som bruker tilstøtende (nærliggende) kolonner og rader . Start tabellene i øvre venstre hjørne ...

Redaktørens valg

Repaso de las Pruebas de GED y lo que Cubren - dummies

Repaso de las Pruebas de GED y lo que Cubren - dummies

Antes de empezar en prepararse For å få mer informasjon, vennligst kontakt oss. GED, usted debe saber en qué se está metiendo - es decir, de la régata de GED. Cada prueba er en serie av preguntas de méniple, cada una con cinco respuestas posibles. (Sin embargo, algunas de las preguntas ...

Regler for kalkulator Bruk på PSAT / NMSQT - dummies

Regler for kalkulator Bruk på PSAT / NMSQT - dummies

Du har lov til å ta med en kalkulator til PSAT / NMSQT. Testmakerne forteller deg nøyaktig at du kan løse alle problemer på testen uten en kalkulator. Men hvorfor vil du legge til og dele når du har en maskin til å gjøre regnskapet for deg? Nøkkelfaktoren er å bruke kalkulatoren ...

5 Måter å maksimere poengsummen din på SAT-dummiene

5 Måter å maksimere poengsummen din på SAT-dummiene

Vil at din SAT testdag skal være fylt med tillit og glede? Her er fem måter å hjelpe deg med å sørge for at du skal prøve. Hold blankene i riktig rekke Når du tar SAT, kan du hoppe over et spørsmål her og der. Ikke noe problem. Bare vær sikker på at svarene du gjør ...

Redaktørens valg

Hvordan du redigerer dine Facebook-tidslinjeseksjoner - dummies

Hvordan du redigerer dine Facebook-tidslinjeseksjoner - dummies

Du kan bestemme hvilke samlingsbokser som vises på din Facebook-tidslinje så vel som rekkefølgen de vises mens du ruller ned. Hvis du vil redigere hvilke seksjoner som vises og hvordan de vises, holder du musen over noen av interessefeltene i den venstre kolonnen. klikk deretter på det blå blyantikonet som vises i ...

Hvordan å designe og administrere utstillede apper i Facebooks tidslinje - dummies

Hvordan å designe og administrere utstillede apper i Facebooks tidslinje - dummies

En av de spennende tingene om den nye virksomheten Tidslinjedesign er Utvalgte apps-delen. Noen kaller dem de utstillede appene. De befinner seg under Timeline Cover-bildet og litt til høyre. Det er plass til fire funksjoner og plass til opptil åtte. Du kan se ...

Slik redigerer du Facebook-postbilder for visuell sosial markedsføring - dummier

Slik redigerer du Facebook-postbilder for visuell sosial markedsføring - dummier

Facebook lar deg lage grunnleggende endringer og gjøre andre endringer etter at du har lagt inn et bilde for visuell sosial markedsføring. For å finne bildet, klikk på Bilder-fanen øverst på siden. eller, hvis du ser bildet i tidslinjen, klikker du bare på bildet. Denne handlingen åpner bildevisningen slik at du kan ...