Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Chcę, aby wyzwalacz DELETE z 2 tabel w MySQL

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.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. czas trwania mysql i czas pobierania

  2. Mysql::Błąd:Podany klucz był za długi; maksymalna długość klucza to 1000 bajtów

  3. Zapytanie mysql do dynamicznej konwersji danych wierszy na kolumny

  4. Dostęp użytkownika MySQL — specyficzny dla tabeli

  5. php:jak zmienić dane ciągu na dane liczbowe