sql >> Databáze >  >> RDS >> Mysql

Jak automaticky odstranit všechny referenční řádky, pokud dojde k odstranění nadřazeného řádku v mysql?

Můžete to udělat pomocí ON DELETE CASCADE .

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

NEBO

Vytvořit AFTER DELETE TRIGGER na nadřazeném stole . Přidejte DELETE dotazy podřízených tabulek.

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. Podmíněný příkaz mySQL. Pokud je pravda UPDATE, pokud je nepravda, INSERT

  2. jak migrovat data mysql do ElasticSearch v reálném čase

  3. JSON_SET() – Vložení nebo aktualizace hodnot v dokumentu JSON v MySQL

  4. Jak zálohovat databáze MySQL z příkazového řádku v Linuxu