如何找到MySQL所有表之间的所有关系?例如,如果我想知道大约有 100 个表的数据库中表的关系。
有什么办法知道这个吗?
从编程角度来说,更好的方法是从以下位置收集数据:INFORMATION_SCHEMA.KEY_COLUMN_USAGE表如下:
SELECT
`TABLE_SCHEMA`, -- Foreign key schema
`TABLE_NAME`, -- Foreign key table
`COLUMN_NAME`, -- Foreign key column
`REFERENCED_TABLE_SCHEMA`, -- Origin key schema
`REFERENCED_TABLE_NAME`, -- Origin key table
`REFERENCED_COLUMN_NAME` -- Origin key column
FROM
`INFORMATION_SCHEMA`.`KEY_COLUMN_USAGE` -- Will fail if user don't have privilege
WHERE
`TABLE_SCHEMA` = SCHEMA() -- Detect current schema in USE
AND `REFERENCED_TABLE_NAME` IS NOT NULL; -- Only tables with foreign keys
还有更多列信息,例如ORDINAL_POSITION这可能有用,具体取决于您的目的。
更多信息: http://dev.mysql.com/doc/refman/5.1/en/key-column-usage-table.html http://dev.mysql.com/doc/refman/5.1/en/key-column-usage-table.html
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)