Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Jak automatycznie usunąć wszystkie wiersze referencyjne, jeśli wiersz nadrzędny zostanie usunięty w mysql?

Możesz to zrobić za pomocą ON DELETE CASCADE .

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

LUB

Utwórz AFTER DELETE TRIGGER na tabeli nadrzędnej . Dodaj zapytania DELETE tabel podrzędnych.

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Procedury składowane MySQL czy kod php?

  2. MySQL przyznaje użytkownikowi uprawnienia do bazy danych

  3. Node.js synchronicznie zapętla się lub iteruje po asynchronicznych instrukcjach

  4. Jak uruchomić natywne zapytania SQL w tej samej transakcji Hibernate?

  5. Jak WYBRAĆ najnowsze cztery pozycje w kategorii?