Verificar Dependencia Mysql

599 views
Skip to first unread message

Ramon Willer

unread,
Dec 14, 2012, 1:04:22 PM12/14/12
to php...@googlegroups.com, ph...@googlegroups.com

Boa tarde amigos, estou com uma curiosidade relativa ao php e mysql, criei uma função em php que executa comandos sql no banco de dados.
esta função analisa a mensagem de erro retornada e exibe uma mensagem ao usuario.

Vamos ao que interesa, quando executo um comando no banco de dados, do tipo delete e o registro excluido apresenta depencia (inodb) com
outros registros na base a função me retorna a mensagem ao usuario, "Falha ao excluir registro, verifique possiveis dependências com o registro em questão".

Gostaria de saber se tem algum comando no mysql que me retorna todas as relações (inodb) entre uma tabela. Procurei no google mais não achei nada
do genero. O sentido da função seria mostra o nome das possiveis dependencias ao usuario.

Obrigado!
--
Ramon Willer da S. Melo
Skype  : ramonwiller
Celular : (33) 9131 9026

Eduardo estevao

unread,
Dec 17, 2012, 7:07:45 AM12/17/12
to ph...@googlegroups.com
Numa pesquisa na internet, achei esse comando, executei aqui e
retornou esses mesmos dados..


select TABLE_NAME,COLUMN_NAME,CONSTRAINT_NAME,
REFERENCED_TABLE_NAME,REFERENCED_COLUMN_NAME from
INFORMATION_SCHEMA.KEY_COLUMN_USAGE where
REFERENCED_TABLE_NAME = '<table>';
> --
> Você recebeu esta mensagem porque está inscrito no grupo "PHP MG" no grupos
> do Google.
> Site oficial do grupo: http://www.phpmg.com
> Para postar neste grupo, envie um e-mail para ph...@googlegroups.com
> Para cancelar a sua inscrição neste grupo, envie um e-mail para
> phpmg-un...@googlegroups.com
> Regras da lista: http://groups.google.com/group/phpmg/web/regras-da-lista
> Para ver mais opções, acesse http://groups.google.com/group/phpmg



--
Atenciosamente,
Eduardo Estevão

Eduardo estevao

unread,
Dec 17, 2012, 9:52:12 AM12/17/12
to ph...@googlegroups.com
Não seria uma boa opção tentar pegar o retorno do mysql e nele pegar o
nome da constraint?



Em 17 de dezembro de 2012 09:07, Allan Freitas
<allanfr...@gmail.com> escreveu:
>
> Vai dar um trabalhinho :)
>
> É alguma ferramenta Open-Source? se for coloca no github ou bitbucket pra
> agente :)
>
> Segue uma Select que traz todas as Foreign Keys da tabela em questão:
> ------------------------------------------------------------------------------------------------------------
> USE NOME_DO_MEU_BANCO;
>
> SELECT i.TABLE_NAME, i.CONSTRAINT_TYPE, i.CONSTRAINT_NAME,
> k.REFERENCED_TABLE_NAME, k.REFERENCED_COLUMN_NAME
> FROM information_schema.TABLE_CONSTRAINTS i
> LEFT JOIN information_schema.KEY_COLUMN_USAGE k ON i.CONSTRAINT_NAME =
> k.CONSTRAINT_NAME
> WHERE i.CONSTRAINT_TYPE = 'FOREIGN KEY'
> AND i.TABLE_SCHEMA = DATABASE()
> AND i.TABLE_NAME = 'NOME_DA_MINHA_TABELA';
> ------------------------------------------------------------------------------------------------------------
> Isso traz o nome da tabela e coluna da chave estrangeira.(traz + info, mas
> use o que precisar)
>
>
> Allan Freitas
> E-mail/Gtalk : allan...@gmail.com
> Skype : allanfreitas7
> Celular : (27) 9776-3501
> GitHub : www.github.com/allanfreitas
>
> Em sexta-feira, 14 de dezembro de 2012 16h04min22s UTC-2, Ramon Willer
> escreveu:

Tayron Miranda

unread,
Dec 19, 2012, 4:50:50 AM12/19/12
to ph...@googlegroups.com
Aqui, estava pensando ontém...
O que você precisa é informar para o usuário a mensagem do tipo: " Para excluir este registro, antes você precisa excluir tal e tal registro ".

Você tem a modelagem do banco em mãos, assim imagino. Dai olha quais são as depedências e coloque manualmente na mensagem, já que isso será uma coisa fixa...

O que acha?

Ramon Willer

unread,
Dec 25, 2012, 7:00:27 AM12/25/12
to ph...@googlegroups.com
Desculpa a demora, o projeto e acadêmico, depois posto o código no github, mais oque o Eduardo me passou me deu algumas ideias, de qualquer forma muito obrigado a todos, e desejo um feliz natal e um prospero ano novo.
Reply all
Reply to author
Forward
0 new messages