Hem Personliga finanser Hur man hanterar SQL-villkor - dummies

Hur man hanterar SQL-villkor - dummies

Innehållsförteckning:

Video: How does a blockchain work - Simply Explained 2024

Video: How does a blockchain work - Simply Explained 2024
Anonim

Du kan få ditt program att titta på SQLSTATE efter utförandet av varje SQL-stämning. Det finns flera möjligheter till vad du kanske vill göra nästa. Vad gör du med den kunskap du får?

  • Om du hittar en klasskod på 00 , vill du förmodligen inte göra någonting. Du vill att utförandet ska fortsätta som du ursprungligen planerat.

  • Om du hittar en klasskod på 01 eller 02 kanske du vill vidta särskilda åtgärder. Om du förväntade dig "Warning" eller "Not Found" -indikationen, vill du förmodligen låta körningen fortsätta. Om du inte förväntade dig någon av dessa klasskoder, vill du förmodligen ha körningsgren till ett förfarande som är speciellt utformat för att hantera det oväntade, men inte helt oförutsedda, varning eller inte hittat resultat.

  • Om du får någon annan klasskod är något fel. Du borde gräva till ett undantagshanteringsförfarande. Vilket förfarande du väljer att filiala beror på innehållet i de tre underklassen tecken, samt de två klassen tecken i SQLSTATE. Om flera olika undantag är möjliga bör det finnas ett undantagshanteringsförfarande för var och en, eftersom olika undantag ofta kräver olika svar.

    Du kanske kan rätta till några fel eller hitta lösningar. Andra fel kan vara dödliga. ingen kommer att dö, men du kan sluta behöva säga upp ansökan.

Handlerdeklarationer

Du kan lägga en villkorshanterare i ett sammansatt uttalande. För att skapa en tillståndshanterare måste du först förklara det villkor som det hanterar. Det angivna tillståndet kan vara ett slags undantag, eller det kan bara vara något som är sant. Här är några möjliga förutsättningar.

Villkor Beskrivning
SQLSTATE VALUE

'xxyyy'

Specifikt SQLSTATE-värde
SQLEXCEPTION SQLSTATE-klass annat än 00, 01 eller 02 > SQLWARNING
SQLSTATE klass 01 Ej fastställd
SQLSTATE klass 02 Följande är ett exempel på en tillståndsdeklaration:

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

Det här exemplet är inte realistiskt, eftersom det vanligtvis är SQL-deklarationen som kan medföra att tillståndet uppstår - såväl som hanteraren som skulle åberopas om tillståndet inträffade - skulle också bifogas BEGIN … END-strukturen.

Handler-åtgärder och hanteringseffekter

Om ett tillstånd inträffar som påkallar en hanterare, utförs handlingen som anges av hanteraren. Denna åtgärd är ett SQL-uttalande, som kan vara en sammansatt uttalande. Om hanteringsåtgärden fullbordas framgångsrikt utförs handler-effekten.Följande är en lista över de tre möjliga hanteringseffekterna:

FORTSÄTT: Fortsätt utförandet omedelbart efter det uttalande som orsakade hanteraren att åberopa.

  • EXIT: Fortsätt utförandet efter det sammansatta uttalandet som innehåller hanteraren.
  • UNDO: Ångra arbetet i de tidigare uttalandena i det sammansatta uttalandet och fortsätt sedan utförandet efter det uttalande som innehåller hanteraren.

  • Om hanteraren kan rätta till vilket problem som helst som åberopat hanteraren, kan CONTINUE-effekten vara lämplig. EXIT-effekten kan vara lämplig om hanteraren inte åtgärda problemet, men de ändringar som gjorts i det sammansatta uttalandet behöver inte ångras. UNDO-effekten är lämplig om du vill returnera databasen till det tillstånd den var innan sammansatt uttalande började att utföras.

Tänk på följande exempel:

BEGIN ATOMIC DECLARE constraint_violation CONDITION FÖR SQLSTATE VALUE '23000'; DECLARE UNDO HANDLER FÖR BEGRÄNSNINGSAVVIKLING RESIGNAL; REPLACE INTO elever (StudentID, Fname, Lname) VALUER (: sid,: sfname,: slname); INSATERA i roster (ClassID, Class, StudentID) VÄRDEN (: cid,: cname,: sid); SLUTET;

Om något av INSERT-satsen orsakar en begränsningsbrott, till exempel att försöka lägga till en post med en primär nyckel som duplicerar en primär nyckel redan i tabellen, antar SQLSTATE ett värde av "23000" och ställer därmed villkoret om begränsning av avvikelse till ett sant värde.

Med denna åtgärd får handlaren UNDO några ändringar som har gjorts till några tabeller med antingen INSERT-kommandot. I RESIGNAL-satsen överförs kontrollen tillbaka till det förfarande som kallas den nuvarande exekveringsrutinen.

Om båda INSERT-meddelandena utförs framgångsrikt fortsätter exekveringen med uttalandet som följer END-sökordet.

ATOMIC-sökordet är obligatoriskt när en hanterarens effekt är UNDO. Det här är inte fallet för hanterare vars effekt antingen är FORTSÄTT eller EXIT.

Hur man hanterar SQL-villkor - dummies

Redaktörens val

Hur man justerar inställningar för din bakgrund i Gamestar Mechanic - dummies

Hur man justerar inställningar för din bakgrund i Gamestar Mechanic - dummies

När du har lagt till en Bakgrund till ditt spel kan du ytterligare anpassa bakgrunden i Gamestar Mechanic genom att använda två ytterligare alternativ i dialogrutan Nivåinställningar: Bakgrundsrullning och Bakgrundsstil. Bakgrundsrullning Parallaxen är en viktig egenskap hos bakgrunden i spel där alternativet Fler skärm är valt. Redigerbar ...

Hur man balanserar svårigheten hos ett Gamestar Mechanic Game - dummies

Hur man balanserar svårigheten hos ett Gamestar Mechanic Game - dummies

Det vanligaste exemplet på balansering ett spel i Gamestar Mechanic balanserar svårigheten: Gör inte spelet så lätt att det är tråkigt och gör det inte så svårt att det är frustrerande. För att finjustera spelets svårighet måste du göra små förändringar utan att bli förbunden till ...

För att kalibrera accelerometern för ditt HTML5-spel - dummies

För att kalibrera accelerometern för ditt HTML5-spel - dummies

Som standard antar HTML5-spelaccelerometern Det neutrala läget är perfekt horisontellt - det vill säga enheten ligger platt på ett bord. Men det här är mobila enheter, och spelare vill ofta ha det neutrala stället att vara någon annanstans. Grundläggande tekniken för att kalibrera tiltkontrollen är att hålla koll på en ...

Redaktörens val

Gör äta rena förändringar i livet - dummies

Gör äta rena förändringar i livet - dummies

Rena ätförändringar i ditt liv är inte svåra att göra, men de tar lite gumption, uthållighet och övning. När du gör en koncentrerad insats för att äta lägre på livsmedelskedjan, märka hur detta beslut påverkar andra delar av ditt liv. För att vara framgångsrik måste du tänka på mat och äta annorlunda, vilka ...

Köttfri måndag och hållbarhet - dummies

Köttfri måndag och hållbarhet - dummies

Köttfri måndag är ett ganska nytt koncept som ofta nämns på Facebook och Twitter. Allt det betyder är att en dag i veckan väljer du att äta vegetarian eller vegan. Inte bara kan Meatless Monday spara pengar (eftersom kött är dyrt), men planen hjälper miljön (eftersom stora kött-, fläsk- och kycklingsanläggningar skapar nitrat ...

5 Hälsofördelar Kopplade till Medelhavsdiet - dummies

5 Hälsofördelar Kopplade till Medelhavsdiet - dummies

Medelhavsdieten har länge varit prydnad för vilket ger hälsoeffekter, såsom att minska kranskärlssjukdom och minska risken för vissa cancerformer. Inklusive färska grönsaker och frukter, baljväxter och hälsosamma fetter i din kost kan hjälpa dig att förbättra din hälsa på många sätt. Forskning visar att en traditionell medelhavsdiet minskar ...

Redaktörens val

Hur man arbetar med Nikon D3300-minneskort - dummies

Hur man arbetar med Nikon D3300-minneskort - dummies

Som mediet som lagrar dina bildfiler , Nikon D3300s minneskort är en viktig del av din kamera. Följ dessa tips för att köpa och behålla kort: Köpkort: När du handlar för ett SD-minneskort är den enda specifikationen som noterar annat än kortkapaciteten kort hastighet, vilket indikerar hur snabbt data ...

Timerfotografering: Nikon D5200-dummies med Nikon D5200

Timerfotografering: Nikon D5200-dummies med Nikon D5200

Med intervall Timer Fotografering på Nikon D5200, du kan ställa in kameran för att automatiskt släppa avtryckaren med intervall som sträcker sig från sekunder till timmar från varandra. Med den här funktionen kan du fånga upp ett ämne eftersom det förändras över tiden - en teknik som är känd som fotografering med tidsfördröjning - utan att behöva stå runt på ...

JPEG Filer på Nikon D3300-dummies

JPEG Filer på Nikon D3300-dummies

Uttalad "jay-peg", det här formatet är standardinställningen på din Nikon D3300, som det är på de flesta digitalkameror. JPEG är populär av två huvudorsaker: Omedelbar användbarhet: Alla webbläsare och e-postprogram kan visa JPEG-filer, så att du kan dela bilder online direkt efter att du har tagit dem. Du kan också få en ...