terça-feira, 16 de agosto de 2016

MySQL - Identificar quais Procedures usam uma Tabela

Para identificar qual(is) PROCEDURE(S)/FUNCTION(S) utilizam uma tabela, pode-se fazer uma pesquisa usando o INFORMATION_SCHEMA, conforme abaixo:

SELECT t1.routine_name, t1.routine_type, t1.definer
  FROM information_schema.routines t1 
  WHERE upper(t1.routine_schema) = <'schema|db'>
    AND upper(t1.routine_definition) like '%<'TABELA'>%';

Onde
<'schema|db'> - Schema/DB
<'TABELA'> - Tabela que será pesquisa. Deve estar em Maiúsculo para facilitar a pesquisa

Exemplo:

SELECT t1.routine_name, t1.routine_type, t1.DEFINER
  FROM information_schema.routines t1 
  WHERE upper(t1.routine_schema) = 'db'
    AND upper(t1.routine_definition) like '%ESTOQUE_PRODUTO%';

Nenhum comentário:

Postar um comentário