Slet fra to tabeller på én gang med en trigger:
Triggere bruges til at håndhæve dataintegritet i tabellerne. Du kan bruge triggere til at slette fra et hvilket som helst antal tabeller på én gang.
Før initialisering af triggere skal vi ændre mysql-afgrænseroperatoren midlertidigt, fordi triggere bruger semikolon ;
operator til at angive flere sql-kommandoer i triggeren.
Trin 1 Skift nuværende afgrænsning:
delimiter $$
Trin 2 Opret trigger:
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
$$
Trin 3 Gendan tidligere afgrænser:
delimiter ;
Forklaring:
OLD
er et indbygget søgeord og henviser til blogtabelrækken, som vi sletter. Mysql kører triggeren blog_before_delete
hver gang vi sletter en post i blogtabellen. Hvis udløseren fejler, så rulles sletningen tilbage. Dette er med til at sikre Atomicitet, konsistens, isolation og holdbarhed
i vores database.