Triggers vs Cursors
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 markör är en kontrollstruktur som används i databaser för att gå igenom databasposter. Det är mycket lik den iterator som tillhandahålls av många programmeringsspråk.
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 markörer?
En markör är en kontrollstruktur som används i databaser för att gå igenom databasposter. Det är mycket lik den iterator som tillhandahålls av många programmeringsspråk. Förutom att spåra genom poster i en databas, underlättar markörer också datainsamling, lägga till och radera poster. Genom att definiera rätt sätt kan markörer också användas för att korsa bakåt. När en SQL-fråga returnerar en uppsättning rader, bearbetas de faktiskt med markörer. En markör måste deklareras och tilldelas ett namn innan det kan användas. Då måste markören öppnas med kommandot OPEN. Denna operation skulle placera markören precis före den första raden i resultatuppsättningen av poster. Då måste markören utföra FETCH-operationen för att faktiskt få en rad data till applikationen. Slutligen måste markören stängas med CLOSE-funktionen. Stängda markörer kan öppnas igen.
Vad är skillnaden mellan utlösare och markörer?
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 markör är en kontrollstruktur som används i databaser för att gå igenom databasposter. En markör kan deklareras och användas inom en trigger. I en sådan situation skulle deklarationen vara inuti utlösaren. Då skulle markörens räckvidd vara begränsat till den utlösaren. Inom en utlösare, om en markör förklaras på en infogad eller en raderad tabell, skulle en sådan markör inte vara tillgänglig från en kapslad trigger. När en utlösare är klar kommer alla markörer som skapas inom avtryckaren att tilldelas.