Mysql
 sql >> Database >  >> RDS >> Mysql

Voglio un trigger per CANCELLARE da 2 tabelle in MySQL

Elimina da due tabelle contemporaneamente con un trigger:

I trigger vengono utilizzati per rafforzare l'integrità dei dati nelle tabelle. Puoi utilizzare i trigger per eliminare da qualsiasi numero di tabelle contemporaneamente.

Prima di inizializzare i trigger è necessario modificare temporaneamente l'operatore del delimitatore mysql perché i trigger utilizzano il punto e virgola ; operatore per specificare più comandi sql all'interno del trigger.

Passaggio 1 Modifica il delimitatore corrente:

delimiter $$

Passaggio 2 Crea attivatore:

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

Passaggio 3 Ripristina il delimitatore precedente:

delimiter ;

Spiegazione:

OLD è una parola chiave incorporata e si riferisce alla riga della tabella del blog che stiamo eliminando. Mysql esegue il trigger blog_before_delete ogni volta che cancelliamo una voce nella tabella del blog. Se il trigger ha esito negativo, viene eseguito il rollback dell'eliminazione. Questo aiuta a garantire Atomicità, coerenza, isolamento e durabilità nel nostro database.