TRIGGER Flashcards

(27 cards)

1
Q

O que é uma trigger em um banco de dados?

A

É um tipo especial de procedimento armazenado que é executado automaticamente em resposta a um evento em uma tabela (ex: INSERT, UPDATE, DELETE).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Quais são os dois momentos em que uma trigger pode ser executada em relação ao evento que a dispara?

A

Antes (BEFORE) ou depois (AFTER) do evento.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Quais comandos DML podem acionar uma trigger?

A

INSERT, UPDATE e DELETE.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

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?

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Você precisa auditar todas as exclusões da tabela CLIENTES, registrando quem e quando excluiu cada cliente. Como você faria isso com uma trigger?

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

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?

A

Criaria uma trigger AFTER INSERT na tabela de ITENS_PEDIDO. Essa trigger diminuiria a quantidade vendida do produto na tabela de PRODUTOS.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

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?

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

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?

A

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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Qual é a sintaxe básica para criar uma TRIGGER que executa após a inserção de dados na tabela “ITENS_NOTAS”?

A

CREATE TRIGGER TG_TAB_FATURAMENTO
AFTER INSERT ON ITENS_NOTAS
BEGIN
– Comandos SQL a serem executados
END;

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Qual é o primeiro passo para criar uma TRIGGER em SQL?

A

Usar o comando CREATE TRIGGER seguido do nome da TRIGGER. Exemplo: CREATE TRIGGER TG_NomeDaTrigger

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

O que define o momento em que uma TRIGGER é executada?

A

As palavras-chave BEFORE ou AFTER, seguidas do tipo de operação (INSERT, UPDATE, DELETE) e da tabela. Exemplo: AFTER INSERT ON ITENS_NOTAS

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Quais são as palavras-chave que delimitam o bloco de comandos SQL a serem executados pela TRIGGER?

A

BEGIN e END. Todos os comandos SQL que a TRIGGER deve executar ficam entre essas duas palavras.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

O que pode ser incluído dentro do bloco BEGIN e END de uma TRIGGER?

A

Qualquer comando SQL válido, como DELETE, INSERT, UPDATE, ou mesmo a chamada de procedures.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

O que acontece após a criação de uma TRIGGER?

A

A TRIGGER é compilada e fica armazenada no banco de dados, pronta para ser executada automaticamente sempre que o evento especificado ocorrer na tabela associada.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

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.

A
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

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.

17
Q

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.

18
Q

Crie uma TRIGGER que, antes de inserir um novo pedido na tabela PEDIDOS, defina a data do pedido como a data atual.

19
Q

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).

20
Q

Qual é o problema inicial com a TRIGGER criada anteriormente?

A

Ela só é executada em INSERT, não atualizando a tabela de faturamento em UPDATE ou DELETE.

21
Q

Qual comando SQL é usado para modificar uma TRIGGER existente?

A

CREATE OR REPLACE TRIGGER TG_TAB_FATURAMENTO

22
Q

Como a TRIGGER é modificada para responder a eventos de UPDATE e DELETE?

A

Adicionando OR UPDATE OR DELETE à declaração AFTER INSERT:

23
Q

Qual a importância de usar CREATE OR REPLACE ao invés de DROP TRIGGER e CREATE TRIGGER?

A

CREATE OR REPLACE simplifica o processo de atualização da TRIGGER, sendo mais direto e eficiente.

24
Q

Com base nessa query. Crie uma Trigger para a tabela de funcionario

24
Temos aqui o orçamento por funcionário alocado à cada departamento. Exemplo: no departamento D0001, o orçamento disponível é de 8.350,00 por funcionário alocado. Crie uma query tal qual a da imagem Utilize as tabelas TAB_DEPARTAMENTO (Cod_Departamento), TAB_FUNCIONARIO (Num_Funcionarios, Cod_Departamento) TAB_PROJETO (Orcamento, Cod_Departamento)
25
Com base nessa query. Crie uma Trigger para a tabela de projetos
26
Com base nessa query. Crie uma Trigger para a tabela de departamentos