mysql - 如何查看表或列的所有外键?

标签 mysql foreign-keys innodb

在 MySQL 中,如何获取指向特定表的所有外键约束的列表?一个特定的专栏?这与 this Oracle question 相同, 但对于 MySQL。

最佳答案

对于表格:

SELECT 
  TABLE_NAME,COLUMN_NAME,CONSTRAINT_NAME, REFERENCED_TABLE_NAME,REFERENCED_COLUMN_NAME
FROM
  INFORMATION_SCHEMA.KEY_COLUMN_USAGE
WHERE
  REFERENCED_TABLE_SCHEMA = '<database>' AND
  REFERENCED_TABLE_NAME = '<table>';

对于专栏:

SELECT 
  TABLE_NAME,COLUMN_NAME,CONSTRAINT_NAME, REFERENCED_TABLE_NAME,REFERENCED_COLUMN_NAME
FROM
  INFORMATION_SCHEMA.KEY_COLUMN_USAGE
WHERE
  REFERENCED_TABLE_SCHEMA = '<database>' AND
  REFERENCED_TABLE_NAME = '<table>' AND
  REFERENCED_COLUMN_NAME = '<column>';

基本上,在 WHERE 子句中将 REFERENCED_TABLE_NAME 更改为 REFERENCED_COLUMN_NAME

关于mysql - 如何查看表或列的所有外键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42649617/

相关文章:

php - 用 PHP 和 MySQL 创建的登录表单。如果其他方法不起作用

postgresql - 错误 :"Key ... is not present in table"

mysql - Innodb不接受外键

php - MySQL 事务是原子的吗?

mysql - 如何将连接失败的 MySQL 转发到错误页面 (500)

mysql - 如何捕获由于 mysql 数据中无效的连续字节而导致的 UnicodeDecodeError

mysql - 根据特定值对数据进行分组

php - 如何从PHP中的多维数组中删除空数组

python - Django 2.0 : sqlite IntegrityError: FOREIGN KEY constraint failed

mysql - MySQL 的默认 ON DELETE 行为是什么?