sql >> Databasteknik >  >> RDS >> Mysql

Jag vill ha en trigger för att DELETE från 2 tabeller i MySQL

Ta bort från två tabeller samtidigt med en utlösare:

Utlösare används för att framtvinga dataintegritet i tabellerna. Du kan använda triggers för att ta bort från valfritt antal tabeller samtidigt.

Innan vi initierar triggers måste vi ändra mysql-avgränsningsoperatorn tillfälligt eftersom triggers använder semikolon ; operatorn för att ange flera SQL-kommandon inom triggern.

Steg 1 Ändra aktuell avgränsare:

delimiter $$

Steg 2 Skapa utlösare:

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
$$

Steg 3 Återställ föregående avgränsare:

delimiter ;

Förklaring:

OLD är ett inbyggt sökord och hänvisar till bloggtabellraden som vi tar bort. Mysql kör triggern blog_before_delete när vi tar bort en post i bloggtabellen. Om avtryckaren misslyckas, rullas borttagningen tillbaka. Detta hjälper till att säkerställa Atomicitet, konsistens, isolering och hållbarhet i vår databas.



  1. Skapa en PostgreSQL-databas

  2. Autoload resultat som hämtar samma resultat om och om igen

  3. Det gick inte att ladda filen eller sammansättningen 'MySql.Data, Version=6.2.2.0

  4. Varför genererar Entity Framework kapslade SQL-frågor?