Il mysqldump
comando incluso in MySQL dalla versione 4.1.1
per impostazione predefinita produce uno script che disattiva i controlli della chiave esterna. La seguente riga è inclusa nella parte superiore del file dump:
/*!40014 SET @[email protected]@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
Il /*!40014 ... */
la sintassi è un commento condizionale
che verrà eseguito su MySQL versione 4.0.14 e successive. La vecchia impostazione dei controlli della chiave esterna viene ripristinata verso la fine del file dump:
/*!40014 SET [email protected]_FOREIGN_KEY_CHECKS */;
Si noti che i commenti condizionali sono interpretati dal client (piuttosto che il server). Se carichi il file dump con un client che non li supporta, i controlli della chiave esterna non verranno disabilitati e potresti riscontrare errori. Per ottenere i migliori risultati, suggerirei di caricare i file di dump utilizzando il client ufficiale della riga di comando mysql:
mysql -hserver -uuser -p database < dumpfile.sql
Vale anche la pena notare che se mysqldump
viene eseguito con --compact
opzione, quindi i comandi per disabilitare e riattivare i controlli della chiave esterna vengono omessi dal file dump.