gpt4 book ai didi

MySQL MyISAM 如何查看表或列的所有外键 TO 和 FROM?

转载 作者:太空宇宙 更新时间:2023-11-03 11:24:36 25 4
gpt4 key购买 nike

如何从使用 MyISAM 构建的 MySQL 数据库中获取指向(和来自)特定表和/或特定列的所有外键约束的列表?这与 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。

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

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com