Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Eu quero um gatilho para DELETE de 2 tabelas no MySQL


Excluir de duas tabelas ao mesmo tempo com um acionador:

Os gatilhos são usados ​​para impor a integridade dos dados nas tabelas. Você pode usar gatilhos para excluir de qualquer número de tabelas de uma só vez.

Antes de inicializar os gatilhos, precisamos alterar o operador delimitador mysql temporariamente porque os gatilhos usam ponto e vírgula ; operador para especificar vários comandos sql dentro do gatilho.

Etapa 1 Alterar o delimitador atual:
delimiter $$

Etapa 2 Criar acionador:
CREATE TRIGGER `blog_before_delete`     
  AFTER DELETE ON `blog`     
  FOR EACH ROW     
BEGIN
  DELETE FROM blog_tags where blogid = OLD.id;
  DELETE FROM blog_comments where blogid = OLD.id;
END
$$

Etapa 3 Restaurar delimitador anterior:
delimiter ;

Explicação:

OLD é uma palavra-chave interna e se refere à linha da tabela do blog que estamos excluindo. Mysql executa o gatilho blog_before_delete sempre que excluímos uma entrada na tabela do blog. Se o gatilho falhar, a exclusão será revertida. Isso ajuda a garantir Atomicidade, consistência, isolamento e durabilidade em nosso banco de dados.