Um comando útil que utilizei em uma conversão de um banco de dados, pode ser útil em algum momento do dia a dia.
Hoje o sistema não trabalha com FK por isso não, é fácil identificar pela tabela suas relações e dependências.
Porém existe uma nomenclatura padrão para essa referencias que quase sempre é, a palavra “Codigo“ + “nome da tabela“
por exemplo, a conta possui uma loja, então o campo que o identifica como FK é o “CodigoLoja” , (para loja existem as variações mais comuns de codigoempresa e codigole) quanto a codigolojaorigem ou destino, o comando já irá achar pois o critério basta conter o inicio desta palavra.
veja o exemplo a baixo, utilizei o comando para pesquisar onde continha qualquer dependência para loja, porém pode ser utilizado para fazer qualquer pesquisa.
SELECT
tb_col.TABLE_NAME,tb_col.COLUMN_NAME, CONCAT(tb_col.TABLE_NAME,'.',tb_col.COLUMN_NAME) as coluna,
CONCAT(
'SELECT * FROM ',
tb_col.TABLE_NAME,
' WHERE ',
tb_col.TABLE_NAME,
'.',
tb_col.COLUMN_NAME,
' = 2',
' LIMIT 1;'
) as consulta
FROM
information_schema.`COLUMNS` tb_col
INNER JOIN information_schema.`TABLES` tb_table on tb_table.TABLE_NAME = tb_col.TABLE_NAME
WHERE
(
(
tb_col.TABLE_SCHEMA = 'testecentral' AND tb_table.TABLE_SCHEMA = 'testecentral'
)
AND
(
tb_col.COLUMN_NAME REGEXP "codigoloja"
OR tb_col.COLUMN_NAME REGEXP 'codigoempresa'
OR tb_col.COLUMN_NAME REGEXP 'codigole'
)
AND
(
tb_col.TABLE_NAME NOT REGEXP 'atl_vw_'
AND tb_table.TABLE_ROWS > 0
)
);
como resultado deste comando tivemos os seguintes registros