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

Come eliminare automaticamente tutte le righe di riferimento se la riga padre viene eliminata in mysql?

Puoi farlo con ON DELETE CASCADE .

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

O

Crea AFTER DELETE TRIGGER nella tabella padre . Aggiungi le query DELETE delle tabelle figlio.

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 ;