Mysql
 sql >> Base de données >  >> RDS >> Mysql

Comment supprimer automatiquement toutes les lignes de référence si la ligne parente est supprimée dans mysql ?

Vous pouvez faire avec ON DELETE CASCADE .

ALTER TABLE childTable
  ADD CONSTRAINT `FK_key` FOREIGN KEY (`childColumnName`) 
  REFERENCES parentTable(`parentColumnName`) ON UPDATE CASCADE ON DELETE CASCADE

OU

Créer AFTER DELETE TRIGGER sur la table parent . Ajouter des requêtes DELETE des tables enfants.

DELIMITER $$

CREATE
    TRIGGER `tn_aur_department_master` AFTER DELETE ON `tn_parentTable` 
    FOR EACH ROW BEGIN
        DELETE FROM childTable WHERE parentId = old.parentId;
    END;
$$

DELIMITER ;