Usuń z dwóch stołów naraz za pomocą wyzwalacza:
Wyzwalacze służą do wymuszania integralności danych w tabelach. Możesz użyć wyzwalaczy, aby usunąć z dowolnej liczby tabel naraz.
Przed zainicjowaniem wyzwalaczy musimy tymczasowo zmienić operator separatora mysql, ponieważ wyzwalacze używają średnika ;
operatora, aby określić wiele poleceń sql w wyzwalaczu.
Krok 1 Zmień bieżący ogranicznik:
delimiter $$
Krok 2 Utwórz aktywator:
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
$$
Krok 3 Przywróć poprzedni ogranicznik:
delimiter ;
Wyjaśnienie:
OLD
jest wbudowanym słowem kluczowym i odnosi się do usuwanego wiersza tabeli blogu. Mysql uruchamia wyzwalacz blog_before_delete
za każdym razem, gdy usuwamy wpis w tabeli bloga. Jeśli wyzwalacz nie powiedzie się, usunięcie zostanie wycofane. Pomaga to zapewnić niepodzielność, spójność, izolację i trwałość
w naszej bazie danych.