即使在明確患有的是心因性勃起障礙,需要正確的心理健康治療才能根治問題,仍是無可奈何地依靠服用犀利士、威而鋼等ED藥物。因為心理疾病難以完全治愈,一定條件下可從新觸發。

Banco de dados

O que é uma Trigger?

Curso gratuito - Como trabalhar com o Banco de dados MySQL

Trigger é um tipo especial de procedimento armazenado que é executado automaticamente pelo banco de dados em resposta a certos eventos que acontecem em uma tabela, como inserção, atualização ou exclusão de dados.

Para que serve uma Trigger?

  • Validar dados antes de uma operação.
  • Manter auditoria de alterações.
  • Atualizar outras tabelas automaticamente.
  • Garantir regras de negócio diretamente no banco.

2. Quando uma Trigger é executada?

  • BEFORE: Executa antes da operação (INSERT, UPDATE, DELETE) acontecer.
  • AFTER: Executa depois da operação acontecer.

Exemplos de eventos que disparam triggers:

EventoSignificado
BEFORE INSERTAntes de inserir um dado
AFTER INSERTDepois de inserir um dado
BEFORE UPDATEAntes de atualizar um dado
AFTER UPDATEDepois de atualizar um dado
BEFORE DELETEAntes de deletar um dado
AFTER DELETEDepois de deletar um dado

3. Sintaxe básica para criar uma Trigger no MySQL

sqlCopiarEditarCREATE TRIGGER nome_da_trigger
    {BEFORE | AFTER} {INSERT | UPDATE | DELETE}
    ON nome_da_tabela
    FOR EACH ROW
BEGIN
    -- comandos SQL
END;

4. Exemplo prático

Vamos criar um exemplo simples para entender melhor.

Contexto

Temos uma tabela funcionarios que armazena dados dos funcionários:

CREATE TABLE funcionarios (
id INT AUTO_INCREMENT PRIMARY KEY,
nome VARCHAR(100),
salario DECIMAL(10,2),
data_admissao DATE
);

E uma tabela de auditoria que registra alterações no salário:

CREATE TABLE auditoria_salario (
id INT AUTO_INCREMENT PRIMARY KEY,
funcionario_id INT,
salario_antigo DECIMAL(10,2),
salario_novo DECIMAL(10,2),
data_alteracao TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

Objetivo da Trigger

Quando um salário for atualizado na tabela funcionarios, registrar na tabela auditoria_salario o salário antigo e o novo.


Código da Trigger

DELIMITER $$

CREATE TRIGGER trg_auditoria_salario
AFTER UPDATE ON funcionarios
FOR EACH ROW
BEGIN
IF OLD.salario <> NEW.salario THEN
INSERT INTO auditoria_salario(funcionario_id, salario_antigo, salario_novo)
VALUES (OLD.id, OLD.salario, NEW.salario);
END IF;
END$$

DELIMITER ;

5. Testando a Trigger

-- Inserir um funcionário
INSERT INTO funcionarios (nome, salario, data_admissao) VALUES ('João Silva', 3000.00, '2020-01-10');

-- Atualizar salário do funcionário
UPDATE funcionarios SET salario = 3500.00 WHERE id = 1;

-- Verificar auditoria
SELECT * FROM auditoria_salario;

No resultado, veremos o registro da alteração do salário.

Caso não saiba como Instalar o MySQL, preparar o banco de dados para uso e executar os comandos no terminal assista a seguinte playlist.

About the author

Danilo Filitto

Mestre em Ciência da Computação pela Universidade Estadual de Maringá - UEM, Pós-Graduado em Redes de Computadores e Comunicação de Dados pela Universidade do Estado do Paraná - UEL, Bacharel em Ciência da Computação pela Universidade do Oeste Paulista - UNOESTE.

Atuo na área acadêmica como professor desde 2006. Atualmente leciono na UNOESTE (Universidade do Oeste Paulista), no SENAC (Serviço Nacional de Aprendizagem Comercial) e possuo vários cursos na Udemy (https://www.udemy.com/user/danilo-filitto/).

Além disso, sou o CEO dos sites https:www.dfilitto.com.br e https:www.makeindiegames.com.br

Você também pode me encontrar no YouTube por meio do endereço https://www.youtube.com/danilofilittoppr

Add Comment

Click here to post a comment

Aprenda a criar seus próprios jogos

Cursos em promoção

Cursos em destaque

Quer aprender a programar?

Aprenda a criar seus próprios jogos com os melhores desenvolvedores