Triggers vs Stored Procedures
I en databas är en trigger en procedur (kodsegment) som exekveras automatiskt när vissa specifika händelser inträffar i en tabell / vy. Bland andra användningsområden används triggare för att upprätthålla integritet i en databas. En lagrad procedur är en metod som kan användas av applikationer som använder en relationsdatabas. Vanligtvis används lagrade procedurer som ett sätt att validera data och styra åtkomst till en databas.
Vad är utlösare?
En utlösare är ett förfarande (kodsegment) som exekveras automatiskt när vissa specifika händelser inträffar i en tabell / vy av en databas. Bland andra användningsområden används triggare för att upprätthålla integritet i en databas. Utlösare används också för att tillämpa affärsregler, revision av ändringar i databasen och replikering av data. De vanligaste triggarna är Data Manipulation Language (DML) triggers som utlöses när data manipuleras. Vissa databassystem stöder icke-datautlösare, som utlöses när data definition språk (DDL) händelser inträffar. Några exempel är triggers som avfyras när bord skapas, under commit eller rollback-operationer, etc. Dessa triggers kan användas speciellt för revision. Oracle-databasystemet stöder schemanivåutlösare (dvs. utlösare avfyrade när databasscheman ändras) som efter skapande, före ändring, efter ändring, före droppe, efter dropp osv. De fyra huvudtyperna av utlösare som stöds av Oracle är radnivåutlösare, Kolumnnivåutlösare, varje radtyp utlösare och för varje uttalande typ utlösare.
Vad är lagrade procedurer?
En lagrad procedur är en metod som kan användas av en applikation som öppnar en relationsdatabas. Vanligtvis används lagrade procedurer som ett sätt att validera data och styra åtkomst till en databas. Om någon databehandling kräver flera SQL-satser som ska utföras, implementeras sådana operationer som lagrade procedurer. När en lagrad procedur aktiveras måste ett CALL eller EXECUTE-meddelande användas. Lagrade procedurer kan returnera resultat (till exempel resultat från SELECT-satsen). Dessa resultat kan användas av andra lagrade procedurer eller av applikationer. Språk som används för att skriva lagrade procedurer stöder typiskt kontrollstrukturer som om, medan, för osv. Beroende på vilket databassystem som används kan flera språk användas för att genomföra lagrade procedurer (t.ex. PL / SQL och Java i Oracle, T- SQL (Transact-SQL) och .NET Framework i Microsoft SQL Server). Dessutom använder MySQL sina egna lagrade procedurer.
Vad är skillnaden mellan utlösare och lagrade procedurer?
En utlösare är ett förfarande (kodsegment) som exekveras automatiskt när vissa specifika händelser inträffar i en tabell / vy av en databas, medan en lagrad procedur är en metod som kan användas av en applikation som använder en relationsdatabas. Utlösare utförs automatiskt när händelsen som utlösaren ska svara på uppträder. Men för att utföra en lagrad procedur måste ett specifikt CALL eller EXECUTE uttalande användas. Felsökningsutlösare kan vara svårare och knepigare än att felsöka lagrade procedurer. Utlösare är mycket användbara när du vill se till att något händer när en viss händelse inträffar.