mysqldump
příkaz zahrnutý v MySQL od verze 4.1.1
ve výchozím nastavení vytvoří skript, který vypne kontroly cizích klíčů. V horní části souboru výpisu je uveden následující řádek:
/*!40014 SET @[email protected]@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
Kód /*!40014 ... */
syntaxe je podmíněný komentář
který bude spuštěn na MySQL verze 4.0.14 a novější. Ke konci souboru výpisu se obnoví staré nastavení kontroly cizího klíče:
/*!40014 SET [email protected]_FOREIGN_KEY_CHECKS */;
Upozorňujeme, že podmíněné komentáře jsou interpretovány klientem (spíše než server). Pokud soubor výpisu načtete pomocí klienta, který je nepodporuje, kontroly cizích klíčů nebudou zakázány a můžete narazit na chyby. Pro dosažení nejlepších výsledků bych navrhoval načítání souborů výpisu pomocí oficiálního klienta příkazového řádku mysql:
mysql -hserver -uuser -p database < dumpfile.sql
Za zmínku také stojí, že pokud mysqldump
je spuštěn pomocí --compact
pak jsou příkazy pro zakázání a opětovné zapnutí kontrol cizích klíčů ze souboru výpisu vynechány.