Triggers No Oracle
1. INTRODUÇÃO
Em um banco de dados temos 4 ações possíveis (Insert, Update, Delete e Select) , temos 3 dessas ações como possíveis modificadoras do banco de dados (select não modifica o banco de dados). Os bancos de dados prevêem que caso haja uma ação de modificação podemos ter ações complementares vinculadas a mesma, que é o que chamamos de Trigger.
Trigger como a tradução se faz, são gatilhos, o gatilho ocorre toda vez que uma ação ocorre em um banco de dados. O Trigger é conseqüência de uma ação, portanto não é o fim e sim algo que ocorre em função de uma ação.
Os Triggers podem ser do tipo ROW LEVEL (Linha) ou STATEMENT (Tabela). Além disso, os Triggers podem ocorrer (BEFORE) antes ou (AFTER) depois que a ação tenha ocorrido, e por fim pode ocorrer para as ações de INSERT, UPDATE e DELETE em uma tabela.
2. TIPOS DE TRIGGERS
TRIGGER ROW LEVEL
Os Triggers do tipo ROW LEVEL podem ser usados sempre que precisarmos que um Trigger trate de valores em uma transação, e por sua vez são disparados a cada ocorrência de uma transação sobre uma tabela. Se um UPDATE atualizar, por exemplo, 1000 linhas em uma tabela que possua um Trigger de Update do tipo row level, serão disparadas 1000 vezes.
Os Triggers do tipo row level são utilizadas para operações como:
Gravação de LOGS de auditoria de uma aplicação;
Verificação de dados (Consistência);
Implementação de integridade referencial;
TRIGGER STATEMENT
Os Triggers do tipo STATEMENT tem a finalidade de tratar a execução de ações sobre tabelas independentemente de quantas linhas forem afetadas. Através deste tipo de Trigger podemos registrar a execução de comandos INSERT, UPDATE e DELETE contra tabelas que tenham Triggers contemplando essas ações. Caso um comando UPDATE atualize 1000 linhas, um Trigger deste tipo apenas dispararia 1 única vez. Este tipo de Trigger não pode referenciar qualquer valor contido em uma coluna da tabela. Isso ocorre porque se o mesmo dispara uma única vez.
Este