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.