Triggers vs Cursors
I en databas är en trigger en procedur (kodsegment) som körs automatiskt när vissa specifika händelser inträffar i en tabell / vy. Bland dess andra användningsområden används triggers främst för att upprätthålla integriteten i en databas. En markör är en kontrollstruktur som används i databaser för att gå igenom databasposterna. Det liknar den iterator som tillhandahålls av många programmeringsspråk.
Vad är triggers?
En trigger är ett förfarande (kodsegment) som körs automatiskt när vissa specifika händelser inträffar i en tabell / vy i en databas. Bland dess andra användningsområden används triggers främst för att upprätthålla integriteten i en databas. Triggers används också för att tillämpa affärsregler, granska ändringar i databasen och replikera data. De vanligaste triggarna är Data Manipulation Language (DML) triggers som utlöses när data manipuleras. Vissa databassystem har stöd för icke-datatriggers, som utlöses när DDL-händelser (Data Definition Language) inträffar. Några exempel är utlösare som avfyras när tabeller skapas, under kommit eller återställningsåtgärder etc. Dessa utlösare kan särskilt användas för granskning. Oracle-databassystem stöder triggers på schemanivå (dvs.triggers utlöst när databasscheman modifieras) som After Creation, Before Alter, After Alter, Before Drop, After Drop, etc. De fyra huvudtyperna av triggers som stöds av Oracle är radnivåutlösare, Kolumnivåutlösare, Varje radtyp triggers och För varje påståendetyp utlöses.
Vad är markörer?
En markör är en kontrollstruktur som används i databaser för att gå igenom databasposterna. Det liknar den iterator som tillhandahålls av många programmeringsspråk. Förutom att gå igenom poster i en databas, underlättar markörer också datainhämtning, lägger till och tar bort 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 hjälp av markörer. En markör måste deklareras och tilldelas ett namn innan den kan användas. Markören måste sedan öppnas med kommandot ÖPPNA. Den här åtgärden placerar markören strax 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å in en rad data till applikationen. Slutligen måste markören stängas med stängningen. Stängda markörer kan öppnas igen.
Vad är skillnaden mellan utlösare och markörer?
En trigger är ett förfarande (kodsegment) som körs automatiskt när vissa specifika händelser inträffar i en tabell / vy i en databas, medan en markör är en kontrollstruktur som används i databaser för att gå igenom databasposterna. En markör kan deklareras och användas i en trigger. I en sådan situation skulle deklarera uttalandet vara inne i avtryckaren. Då skulle markörens omfattning begränsas till den utlösaren. Om en markör deklareras i en infogad eller borttagen tabell inom en trigger, skulle en sådan markör inte vara tillgänglig från en kapslad trigger. När en utlösare har slutförts allokeras alla markörer som skapats inom utlösaren.