Skip to content

Instantly share code, notes, and snippets.

@RobThree
Created June 29, 2022 11:18
Show Gist options
  • Save RobThree/0f2635374c2559cc460466ca73714d6e to your computer and use it in GitHub Desktop.
Save RobThree/0f2635374c2559cc460466ca73714d6e to your computer and use it in GitHub Desktop.
List MySQL foreign keys including delete / update rules (RESTRICT, CASCADE, SET NULL, NO ACTION or SET DEFAULT)
SELECT `r`.`table_name`, `r`.`referenced_table_name`, `r`.`constraint_name`, GROUP_CONCAT(`k`.`column_name` SEPARATOR ', ') AS `key_columns`, `r`.`delete_rule`, `r`.`update_rule`
FROM `information_schema`.`referential_constraints` `r`
INNER JOIN `information_schema`.`key_column_usage` `k` on `r`.`constraint_catalog` = `k`.`constraint_catalog` and `r`.`constraint_schema` = `k`.`constraint_schema` and `r`.`constraint_name` = `k`.`constraint_name`
WHERE `r`.`constraint_schema` = '<database_name>'
GROUP BY `r`.`constraint_catalog`, `r`.`constraint_schema`, `r`.`constraint_name`
ORDER BY `r`.`table_name`, `r`.`constraint_name`
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment