sql >> Database >  >> RDS >> Mysql

ON DELETE CASCADE werkt niet in MySQL

De MyISAM-opslagengine ondersteunt geen beperkingen voor externe sleutels. De beperking wordt geparseerd maar in stilte genegeerd.

Gebruik in plaats daarvan de InnoDB-engine (voor beide tabellen) om uw probleem op te lossen.

CREATE TABLE ( ... ) ENGINE = InnoDB ... ;

In plaats van je tabellen te laten vallen en ze opnieuw te maken, kun je ook de opslagengine wijzigen:

ALTER TABLE myDB.app_info ENGINE = InnoDB;
ALTER TABLE myDB.tab_info ENGINE = InnoDB;

Na het wijzigen van de engine moet u de externe sleutelbeperking opnieuw toevoegen.




  1. Hoe gegevens van een tabel uit een andere database in SQL Server selecteren?

  2. MySQL-fout 2013

  3. Wat virtuele bestandsstatistieken wel en niet vertellen over I/O-latentie

  4. postgresql dubbele sleutel schendt unieke beperking