Académique Documents
Professionnel Documents
Culture Documents
Triggers
Triggers so eventos que voc pode programar para que sejam executados antes (BEFORE)
ou depois (AFTER) de fazer uma insero (INSERT), alterao (UPDATE) ou uma remoo
(DELETE) de registros de uma determinada tabela (ON TABLEnome_da_tabela).
Nas verses 5.1.x voc ter permisses para fazer os processos abaixo;
No MySQL 5.0.x, apesar de suportada, seu usurio no tem permisso para realizar o
procedimento abaixo, neste caso ser preciso solicitar a instalao de uma nova base de
dados e migrar os dados da base atual (SSH ou phpMyAdmin) para a base
nova (SSH ou phpMyAdmin);
Para saber a verso do MySQL entre no phpMyAdmin, logo aps informar seu
Criando
Sintaxe:
DELIMITER //
CREATE TRIGGER nome_da_trigger AFTER/BEFORE INSERT/UPDATE/DELETE
ON nome_da_tabela
FOR EACH ROW
BEGIN
-- sua query aqui terminando com ponto-e-vrgula
END //
DELIMITER ;
Exemplo:
DELIMITER //
CREATE TRIGGER minha_trigger AFTER INSERT ON minha_tabela1
FOR EACH ROW
BEGIN
DELETE FROM minha_tabela2;
END //
DELIMITER ;
Removendo
DROP TRIGGER nome_da_trigger;
Triggers
Trigger um recurso de programao executado sempre que o evento
associado ocorrer. Trigger um tipo especial de procedimento armazenado, que
executado sempre que h uma tentativa de modificar os dados de uma tabela
que protegida por ele. muito utilizada para ajudar a manter a consistncia
dos dados ou para propagar alteraes em um determinado dado de uma
tabela para outras. Um bom exemplo um gatilho criado para controle de
quem alterou a tabela, nesse caso, quando a alterao for efetuada, a trigger
"disparada" e grava em uma tabela de histrico de alterao, o usurio e
data/hora da alterao.
Utilizao do trigger
Para exemplificar e tornar mais clara a utilizao de triggers, simulado a
seguinte situao: um mercado que, ao realizar vendas, precisa que o estoque
dos produtos seja automaticamente reduzido. A devoluo do estoque deve
tambm ser automtica no caso de remoo de produtos da venda.
Como se trata de um ambiente hipottico, teremos apenas duas tabelas
de estrutura simples, cujo script de criao mostrado na listagem a seguir.
CREATE TABLE produtos (
referencia VARCHAR(3) PRIMARY KEY,
descricao
VARCHAR(50) UNIQUE,
estoque INT NOT NULL
);
INSERT INTO Produtos VALUES ('1', 'Lasanha', 10);
INSERT INTO Produtos VALUES ('2', 'Morgango', 5);
INSERT INTO Produtos VALUES ('3', 'Farinha', 15);
CREATE TABLE itensvenda (
venda INT,
produto VARCHAR(3),
);
quantidade
INT
Atividade de Fixao
No intuito de fixar a aprendizagem iniciada com o estudo deste mdulo, e
verificar como seu entendimento sobre este contedo est, alguns exerccios
esto lhe sendo sugeridos como atividade de fixao neste momento. Clique na
ligao virtual Exerccios, que est disponvel no final do menu lateral
esquerda, e proceda da maneira indicada para solucion-los.