O que é uma trigger em um banco de dados?
É um tipo especial de procedimento armazenado que é executado automaticamente em resposta a um evento em uma tabela (ex: INSERT, UPDATE, DELETE).
Quais são os dois momentos em que uma trigger pode ser executada em relação ao evento que a dispara?
Antes (BEFORE) ou depois (AFTER) do evento.
Quais comandos DML podem acionar uma trigger?
INSERT, UPDATE e DELETE.
Imagine que você tem uma tabela de PRODUTOS e quer garantir que o campo PRECO nunca seja negativo. Como você usaria uma trigger para isso?
Criaria uma trigger BEFORE UPDATE na tabela PRODUTOS que verifica se o novo valor de PRECO é menor que zero. Se for, a trigger impede a atualização e retorna um erro.
Você precisa auditar todas as exclusões da tabela CLIENTES, registrando quem e quando excluiu cada cliente. Como você faria isso com uma trigger?
Criaria uma trigger AFTER DELETE na tabela CLIENTES. Essa trigger inseriria um registro na tabela de auditoria (AUDITORIA_CLIENTES) contendo o ID do cliente excluído, o usuário que realizou a exclusão e a data/hora da exclusão.
Em um sistema de e-commerce, você quer atualizar automaticamente o estoque de um produto sempre que ele for vendido. Como você implementaria isso com uma trigger?
Criaria uma trigger AFTER INSERT na tabela de ITENS_PEDIDO. Essa trigger diminuiria a quantidade vendida do produto na tabela de PRODUTOS.
Você tem uma tabela de FUNCIONARIOS com os campos SALARIO e CARGO. Ao atualizar o CARGO de um funcionário, você quer garantir que o SALARIO seja ajustado de acordo com uma faixa salarial predefinida para aquele cargo. Como você faria isso com uma trigger?
Criaria uma trigger BEFORE UPDATE na tabela FUNCIONARIOS. Essa trigger consultaria uma tabela de FAIXAS_SALARIAIS para obter a faixa salarial do novo CARGO e ajustaria o SALARIO do funcionário, se necessário.
Você tem uma tabela de NOTAS e ITENS_NOTAS. Como você pode criar uma trigger para atualizar automaticamente uma tabela chamada TAB_FATURAMENTO sempre que uma nova nota fiscal for inserida ou atualizada?
Criaria uma trigger AFTER INSERT OR UPDATE na tabela NOTAS e ITENS_NOTAS. Essa trigger recalcularia o faturamento total para o dia da nota e atualizaria a tabela TAB_FATURAMENTO com os novos
Qual é a sintaxe básica para criar uma TRIGGER que executa após a inserção de dados na tabela “ITENS_NOTAS”?
CREATE TRIGGER TG_TAB_FATURAMENTO
AFTER INSERT ON ITENS_NOTAS
BEGIN
– Comandos SQL a serem executados
END;
Qual é o primeiro passo para criar uma TRIGGER em SQL?
Usar o comando CREATE TRIGGER seguido do nome da TRIGGER. Exemplo: CREATE TRIGGER TG_NomeDaTrigger
O que define o momento em que uma TRIGGER é executada?
As palavras-chave BEFORE ou AFTER, seguidas do tipo de operação (INSERT, UPDATE, DELETE) e da tabela. Exemplo: AFTER INSERT ON ITENS_NOTAS
Quais são as palavras-chave que delimitam o bloco de comandos SQL a serem executados pela TRIGGER?
BEGIN e END. Todos os comandos SQL que a TRIGGER deve executar ficam entre essas duas palavras.
O que pode ser incluído dentro do bloco BEGIN e END de uma TRIGGER?
Qualquer comando SQL válido, como DELETE, INSERT, UPDATE, ou mesmo a chamada de procedures.
O que acontece após a criação de uma TRIGGER?
A TRIGGER é compilada e fica armazenada no banco de dados, pronta para ser executada automaticamente sempre que o evento especificado ocorrer na tabela associada.
Crie uma TRIGGER que, após a inserção de um novo cliente na tabela CLIENTES, insira um registro na tabela LOG_CLIENTES com a data e hora da inserção.
Crie uma TRIGGER que, antes de atualizar o salário de um funcionário na tabela FUNCIONARIOS, verifique se o novo salário é maior que o salário atual. Se não for, lance um erro.
Crie uma TRIGGER que, após a exclusão de um produto da tabela PRODUTOS, atualize o número total de produtos na tabela ESTATISTICAS.
Crie uma TRIGGER que, antes de inserir um novo pedido na tabela PEDIDOS, defina a data do pedido como a data atual.
Crie uma TRIGGER que, após a atualização do estoque de um produto na tabela ESTOQUE, verifique se o estoque está abaixo do nível mínimo. Se estiver, envie um e-mail de alerta. (Observação: o envio de e-mail exigiria um procedimento armazenado para lidar com a lógica de envio de e-mail).
Qual é o problema inicial com a TRIGGER criada anteriormente?
Ela só é executada em INSERT, não atualizando a tabela de faturamento em UPDATE ou DELETE.
Qual comando SQL é usado para modificar uma TRIGGER existente?
CREATE OR REPLACE TRIGGER TG_TAB_FATURAMENTO
Como a TRIGGER é modificada para responder a eventos de UPDATE e DELETE?
Adicionando OR UPDATE OR DELETE à declaração AFTER INSERT:
Qual a importância de usar CREATE OR REPLACE ao invés de DROP TRIGGER e CREATE TRIGGER?
CREATE OR REPLACE simplifica o processo de atualização da TRIGGER, sendo mais direto e eficiente.
Com base nessa query. Crie uma Trigger para a tabela de funcionario