Получение списка внешних ключей для таблицы MySQL

// Март 1st, 2011 // MySQL

Сегодня думал, как бы получить список внешних ключей. Мы используем InnoDB, и таблицы связаны через Foreign keys.Сначала думал, что есть что-то типа SHOW FOREIGN KEYS FROM ‘tablename’; но оно не сработало. Тогда нашел два варианта.

Первый немного костыльный:

SHOW CREATE TABLE 'tablename';

Отображает SQL команду CREATE TABLE, которой была создана таблица, включая все внешние ключи. Но их надо парсить, а это не есть гут. И тогда нашел второй вариант:

SELECT *
FROM information_schema.KEY_COLUMN_USAGE
WHERE TABLE_SCHEMA ='dbname' AND TABLE_NAME ='tablename' AND
CONSTRAINT_NAME <>'PRIMARY' AND REFERENCED_TABLE_NAME is not null;

Работает отличненько!

Share

Спасибо!


Если вам помогла статья, или вы хотите поддержать мои исследования и блог - вот лучший способ сделать это:


One Response to “Получение списка внешних ключей для таблицы MySQL”

  1. acsel:

    Спасибо большое, помогло.

Комментировать