Получение списка внешних ключей для таблицы 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;
Работает отличненько!
Спасибо большое, помогло.