De mysqldump commando meegeleverd met MySQL sinds versie 4.1.1
produceert standaard een script dat de externe sleutelcontroles uitschakelt. De volgende regel staat bovenaan het dumpbestand:
/*!40014 SET @example@sqldat.com@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
De /*!40014 ... */ syntaxis is een voorwaardelijke reactie
die wordt uitgevoerd op MySQL versie 4.0.14 en later. De oude instelling voor het controleren van buitenlandse sleutels wordt hersteld tegen het einde van het dumpbestand:
/*!40014 SET example@sqldat.com_FOREIGN_KEY_CHECKS */;
Merk op dat de voorwaardelijke opmerkingen worden geïnterpreteerd door de client (in plaats van de server). Als u het dumpbestand laadt met een client die ze niet ondersteunt, worden de externe sleutelcontroles niet uitgeschakeld en kunt u fouten tegenkomen. Voor de beste resultaten raad ik aan om dumpbestanden te laden met de officiële mysql-opdrachtregelclient:
mysql -hserver -uuser -p database < dumpfile.sql
Het is ook vermeldenswaard dat als mysqldump wordt uitgevoerd met de --compact
optie, dan worden de opdrachten voor het in- en uitschakelen van de externe sleutelcontroles weggelaten uit het dumpbestand.