I need to export a large database without foreign keys. What is the command to do this?
This is what I tried but I know this is incorrect.
mysqldump
This is ugly, but I ended up just modifying the schema file to remove the foreign keys.
mysqldump -uuser -ppassword --no-data dbname | sed '$!N;s/^\(\s*[^C].*\),\n\s*CONSTRAINT.*FOREIGN KEY.*$/\1/;P;D' | grep -v 'FOREIGN KEY' > dbname_schema_no_fk.sql
sed finds lines that precede foreign key constraint declarations and replaces those lines with themselves, minus the trailing comma. grep excludes the foreign key constraints.
mysqldump -uuser -ppassword --no-create-info dbname > dbname_data.sql
$ mysql -uuser -ppassword
> create database foo
> use foo
> source dbname_schema_no_fk.sql
> source dbname_data.sql
Tested with mysqldump Ver 10.13 Distrib 5.6.32-78.1, for Linux (x86_64).