получить все таблицы, отсортированные по количеству иностранных ключей - PullRequest
0 голосов
/ 29 апреля 2020

Я могу получить список таблиц с внешними ключами.

Моя цель - сначала получить наши company-meta таблицы первые , на которые отвечают другие транснациональные таблицы. (возможно, есть лучший способ, пожалуйста, включите)

Вопрос: как составить список таблиц с FKeys в порядке убывания и какой родитель / ребенок?

  1. Сначала отсортировано по наименьшему количеству внешних ключей
  2. Каким является родительский, а каким является дочерний *

Ниже символа отношения - rel (' > - ') с указанием внешнего ключа и его направления

select concat(col.table_schema, '.', col.table_name) as 'table',
       col.ordinal_position as col_id,
       col.column_name as column_name,
       case when kcu.referenced_table_schema is null
            then null
            else '>--' end as rel,
       concat(kcu.referenced_table_schema, '.', kcu.referenced_table_name)
              as primary_table,
       kcu.referenced_column_name as pk_column_name,
       kcu.constraint_name as fk_constraint_name
from information_schema.columns col
join information_schema.tables tab
     on col.table_schema = tab.table_schema
     and col.table_name = tab.table_name
left join information_schema.key_column_usage kcu
     on col.table_schema = kcu.table_schema
     and col.table_name = kcu.table_name
     and col.column_name = kcu.column_name
     and kcu.referenced_table_schema is not null
where col.table_schema not in('information_schema','sys',
                              'mysql', 'performance_schema')
      and tab.table_type = 'BASE TABLE'
--    and fks.constraint_schema = 'database name'
order by col.table_schema,
         col.table_name,
         col.ordinal_position;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...