sql >> Databasteknik >  >> RDS >> Mysql

Hur tar man bort alla referensrader automatiskt om överordnad rad tas bort i mysql?

Du kan göra med PÅ DELETE CASCADE .

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

ELLER

Skapa AFTER DELETE TRIGGERöverordnad tabell . Lägg till DELETE-frågor för underordnade tabeller.

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 ;



  1. Oracle SQL Where-klausul för att hitta datumposter äldre än 30 dagar

  2. Varför slutar min cfloop efter att ha satt in första id?

  3. Perl DBI fetchall_hashref

  4. Ska jag lagra pris som decimal eller heltal i Mysql?