Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Wie lösche ich automatisch alle Referenzzeilen, wenn die übergeordnete Zeile in MySQL gelöscht wird?

Das geht mit ON DELETE CASCADE .

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

ODER

Erstellen Sie AFTER DELETE TRIGGER auf der übergeordneten Tabelle . Fügen Sie DELETE-Abfragen von untergeordneten Tabellen hinzu.

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 ;