MySQL MyISAM 如何查看 table 或列的所有外键?
MySQL MyISAM How do I see all foreign keys TO and FROM a table or column?
如何从使用 MyISAM 构建的 MySQL 数据库中获取指向(和来自)特定 table and/or 特定列的所有外键约束的列表?这与 this InnoDB question 相同,但 MyISAM 特定于 MySQL.
考虑规范航空公司数据集。当我 运行 基于链接问题的已接受答案 (TO) 和 Node 的答案 (FROM) 进行以下两个查询时,我的结果为空集。
显示所有指向 'mytable':
的外键
SELECT
TABLE_NAME, COLUMN_NAME, CONSTRAINT_NAME, REFERENCED_TABLE_SCHEMA, REFERENCED_TABLE_NAME, REFERENCED_COLUMN_NAME
FROM
INFORMATION_SCHEMA.KEY_COLUMN_USAGE
WHERE
REFERENCED_TABLE_SCHEMA = 'airlines' AND -- <database>
REFERENCED_TABLE_NAME = 'airports'; -- <table> flights, carriers, planes
显示所有指向 FROM 'mytable':
的外键
SELECT * FROM information_schema.TABLE_CONSTRAINTS
WHERE information_schema.TABLE_CONSTRAINTS.CONSTRAINT_TYPE = 'FOREIGN KEY'
AND information_schema.TABLE_CONSTRAINTS.TABLE_SCHEMA = 'airlines'
AND information_schema.TABLE_CONSTRAINTS.TABLE_NAME = 'carriers';
我是否误认了 REFERENCED_TABLE_SCHEMA?此查询仅适用于 InnoDB 吗?
https://dev.mysql.com/doc/refman/8.0/en/myisam-storage-engine.html 说:
Foreign key support: No
这几天不推荐使用MyISAM。 MySQL 显然正在逐步淘汰它。
另请参阅我对 MyISAM versus InnoDB 的回答,了解为什么我们都应避免使用 MyISAM。
如何从使用 MyISAM 构建的 MySQL 数据库中获取指向(和来自)特定 table and/or 特定列的所有外键约束的列表?这与 this InnoDB question 相同,但 MyISAM 特定于 MySQL.
考虑规范航空公司数据集。当我 运行 基于链接问题的已接受答案 (TO) 和 Node 的答案 (FROM) 进行以下两个查询时,我的结果为空集。
显示所有指向 'mytable':
的外键SELECT
TABLE_NAME, COLUMN_NAME, CONSTRAINT_NAME, REFERENCED_TABLE_SCHEMA, REFERENCED_TABLE_NAME, REFERENCED_COLUMN_NAME
FROM
INFORMATION_SCHEMA.KEY_COLUMN_USAGE
WHERE
REFERENCED_TABLE_SCHEMA = 'airlines' AND -- <database>
REFERENCED_TABLE_NAME = 'airports'; -- <table> flights, carriers, planes
显示所有指向 FROM 'mytable':
的外键SELECT * FROM information_schema.TABLE_CONSTRAINTS
WHERE information_schema.TABLE_CONSTRAINTS.CONSTRAINT_TYPE = 'FOREIGN KEY'
AND information_schema.TABLE_CONSTRAINTS.TABLE_SCHEMA = 'airlines'
AND information_schema.TABLE_CONSTRAINTS.TABLE_NAME = 'carriers';
我是否误认了 REFERENCED_TABLE_SCHEMA?此查询仅适用于 InnoDB 吗?
https://dev.mysql.com/doc/refman/8.0/en/myisam-storage-engine.html 说:
Foreign key support: No
这几天不推荐使用MyISAM。 MySQL 显然正在逐步淘汰它。
另请参阅我对 MyISAM versus InnoDB 的回答,了解为什么我们都应避免使用 MyISAM。