我有一个包含外键的表,我知道该外键的列名。
是否可以使用此信息确定该密钥链接的表?
原因是外键是动态的,所以我无法提前确定链接表。
答案 0 :(得分:2)
如果您使用的是MySQL 5.1或更高版本,则可以使用REFERENTIAL_CONSTRAINTS
table from information schema。类似的东西:
select references_table_name
from referential_constraints
where table_name = 'your_table';
答案 1 :(得分:1)
SELECT CONSTRAINT_NAME, ORDINAL_POSITION, COLUMN_NAME, REFERENCED_TABLE_NAME, REFERENCED_COLUMN_NAME
FROM information_schema.KEY_COLUMN_USAGE
WHERE
TABLE_NAME = 'table_name' AND
TABLE_SCHEMA = 'database_name' AND
REFERENCED_TABLE_SCHEMA = 'database_name';
当你有复合键时, ORDINAL_POSITION
可能会很有用。
答案 2 :(得分:0)
select referenced_table_name, referenced_column_name
from information_schema.key_column_usage
where table_name = 'Yourtable' and column_name='id'