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

Nelze zrušit tabulku:Omezení cizího klíče se nezdaří

Tohle by mělo stačit:

SET FOREIGN_KEY_CHECKS=0; DROP TABLE bericht; SET FOREIGN_KEY_CHECKS=1;

Jak zdůrazňují jiní, téměř nikdy to není to, co chcete, i když je to otázka, na kterou se ptáte. Bezpečnějším řešením je smazat tabulky v závislosti na bericht před smazáním bericht . Viz odpověď CloudyMarble, jak to udělat. Používám bash a metodu v mém příspěvku k odstranění všech tabulek v databázi, když nechci nebo nemohu smazat a znovu vytvořit samotnou databázi.

#1217 chyba nastane, když jiné tabulky mají omezení cizího klíče k tabulce, kterou se pokoušíte odstranit, a používáte databázový stroj InnoDB. Toto řešení dočasně zakáže kontrolu omezovacích prostředků a poté je znovu povolí. Přečtěte si dokumentaci více. Nezapomeňte odstranit omezení cizích klíčů a pole v tabulkách v závislosti na bericht , jinak byste mohli ponechat svou databázi v rozbitém stavu.



  1. Zvýšit pole databáze o 1

  2. Jak zkontrolovat, zda soubor existuje v PL/SQL?

  3. SELECT DISTINCT na jednom sloupci

  4. MySQL JDBC Driver 5.1.33 – Problém s časovým pásmem