Ir para conteúdo
  • ×   Você colou conteúdo com formatação.   Remover formatação

      Only 75 emoji are allowed.

    ×   Your link has been automatically embedded.   Display as a link instead

    ×   Your previous content has been restored.   Clear editor

    ×   You cannot paste images directly. Upload or insert images from URL.

  • Conteúdo Similar

    • Por Zaratruta
      http://stackoverflow.com/questions/34290996/constraints-regarding-new-and-old-in-mysql-triggers


      No livro "MySQL Administrator's Bible", os autores discutem restrições sobre como combinar eventos, tempos de disparo e as palavras-chave OLD e NEW:

      -BEFORE INSERT: NEW é suportado BEFORE INSERT. BEFORE não suporta OLD.

      -AFTER INSERT: AFTER não suporta NEW. não faz sentido usar OLD com AFTER INSERT.

      -BEFORE UPDATE: NEW é suportado com BEFORE UPDATE. BEFORE não suporta OLD.

      -AFTER UPDATE: AFTER não suporta NEW. AFTER UPDATE suporta OLD.

      -BEFORE DELETE: Não faz sentido usar NEW com BEFORE DELETE. BEFORE não suporta OLD.

      -AFTER DELETE: AFTER não suporta NEW. OLD é suportado com AFTER DELETE.

      Assim, de cordo com o livro, eu não posso usar NEW quando estou usando AFTER. No entanto, Eu estou fazendo exatamente isso no trigger abaixo.
      Eu uso ele para armazenar os empregados inseridos em uma tabela backup employee_history

      CREATE TRIGGER insert_emplyee_history AFTER INSERT ON EMPLOYEE FOR EACH ROW INSERT INTO EMPLOYEE_HISTORY VALUES (NEW.NOME,NEW.SSN,NEW.SALARIO,NEW.DNO);

      Este trigger funciona como esperado no MySQL 5.7.

      Será que o livro está errado? Talvez essas restrições tenham mudado nas últimas versões (eu uso a 5.7 e o livro usa a 5.0).

      alguém poderia me dizer exatamente quais são as restrições envolvidas nesse caso?
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.