Mysql com TRIGGERS: KingHost Tem


O que são Triggers? O que é uma Trigger?

Triggers são gatilhos de banco de dados. Por exemplo, você quer definir que toda vez que um registro for adicionado em uma tabela, ele será automaticamente inserido também em uma tabela de LOG. Outro exemplo: toda vez que um usuário for removido de uma tabela, ele seja removido de outras tabelas também…

Com Mysql 5.1 isso é possível!

Diz a lenda que para criar uma TRIGGER, o usuário precisa poderes de “Super”usuário. Na KingHost não precisa, desde que a Trigger seja criada com DEFINER=USUARIO.

Exemplo:

CREATE DEFINER = CURRENT_USER TRIGGER testref BEFORE INSERT ON test1
FOR EACH ROW BEGIN
INSERT INTO test2 SET a2 = NEW.a1;
DELETE FROM test3 WHERE a3 = NEW.a1;
UPDATE test4 SET b4 = b4 + 1 WHERE a4 = NEW.a1;
END;

Comentários

comentário(s)

2 Comments

Add yours
  1. Bruno Furtado

    Opa…

    Segui esse exemplo e não obtive sucesso.
    Criei as tabelas corretamente.
    Ao tentar executar o comando de criação de trigger tanto por rede externa, quanto interna não obtive sucesso.

    Alguma dica complementar?
    Valeuu.

    • Ramon

      Tem certeza que não é um erro de sintaxe? As vezes vc precisa tbm usar o delimiter:

      delimiter //

      CREATE TRIGGER nome_da_trigger AFTER UPDATE ON nome_da_tabela
      FOR EACH ROW
      BEGIN
      ……
      END;//
      delimiter;

      Mesmo depois disso o mySQL pode acusar um erro de sintaxe no delimitier, mas a trigger foi criara com sucesso.

+ Leave a Comment