Boa tarde a todos,
Recentemente tive que procurar todas as referências de uma coluna (chave primária) de uma determinada tabela em todas as outras tabelas do banco de dados, por exemplo:
“Na tabela tb_produto a chave primária é a coluna ‘id_produto’ e esta coluna está nas tabelas ‘tb_item_venda’, ‘tb_item_venda_cancelado’, ‘tb_outra_operacao_com_produto’, etc… “
Daí pensei se não existia alguma marotagem que eu poderia usar, daí lembrei do famoso information schema do MySQL. Esse cara contém informação sobre todo o que imaginar dos bancos, tabelas, colunas, índices, etc. Pesquisando um pouco achei uma forma marota de fazer por SQL:
[sql]
SELECT
k.*
FROM
KEY_COLUMN_USAGE k
WHERE
k.REFERENCED_TABLE_NAME = ‘nome_da_tabela_de_referencia’
AND
k.REFERENCED_COLUMN_NAME = ‘id_da_coluna_a_ser_procurada’
AND
k.TABLE_SCHEMA = ‘nome_do_seu_banco_de_dados’;
[/sql]
Simples não? Se você quiser mais é só dar uma dissecada no information schema do MySQL, tem muita coisa bacana por lá.
http://dev.mysql.com/doc/refman/5.0/en/information-schema.html
Abraços pessoal.