Можно ли определить таблицу, связанную внешним ключом? - PullRequest
0 голосов
/ 15 сентября 2010

У меня есть таблица, содержащая внешний ключ, и я знаю имя столбца этого внешнего ключа.

Можно ли, используя эту информацию, определить таблицу, к которой относится этот ключ?1004 * Причина этого в том, что внешний ключ является динамическим, и поэтому я не могу определить связанную таблицу заранее.

Ответы [ 3 ]

2 голосов
/ 15 сентября 2010

При условии, что вы используете MySQL 5.1 или более позднюю версию, вы можете использовать REFERENTIAL_CONSTRAINTS таблицу из информационной схемы . Что-то вроде:

select references_table_name
  from referential_constraints
 where table_name = 'your_table';
1 голос
/ 15 сентября 2010
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 может представлять интерес при наличии составных ключей.

0 голосов
/ 15 сентября 2010
select referenced_table_name, referenced_column_name
 from information_schema.key_column_usage
where table_name = 'Yourtable' and column_name='id'
...