Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save jfriv/f7c7834a44a7a3ef8a6ac03c5b920953 to your computer and use it in GitHub Desktop.
Save jfriv/f7c7834a44a7a3ef8a6ac03c5b920953 to your computer and use it in GitHub Desktop.
MySQL export all foreign keys for a database into a csv file with header row
SELECT 'TABLE_SCHEMA', 'TABLE_NAME', 'CONSTRAINT_NAME', 'REFERENCED_TABLE_NAME', 'UNIQUE_CONSTRAINT_NAME', 'UNIQUE_CONSTRAINT_SCHEMA', 'UPDATE_RULE', 'DELETE_RULE'
UNION ALL
SELECT kcu.TABLE_SCHEMA, kcu.TABLE_NAME, kcu.CONSTRAINT_NAME, kcu.REFERENCED_TABLE_NAME, rc.UNIQUE_CONSTRAINT_NAME, rc.UNIQUE_CONSTRAINT_SCHEMA, rc.UPDATE_RULE, rc.DELETE_RULE
INTO OUTFILE '/tmp/fk_audit_mydatabase.csv'
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY '\n'
FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE kcu
JOIN INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS rc ON (rc.CONSTRAINT_NAME=kcu.CONSTRAINT_NAME)
WHERE kcu.TABLE_SCHEMA='mydatabase' AND kcu.REFERENCED_TABLE_NAME IS NOT NULL
ORDER BY kcu.TABLE_NAME;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment