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 @[email protected]@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 [email protected]_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.