Dois comandos em Stored Procedure
Gostaria de inserir e consultar na mesma procedure como poderia fazer isso?
Minha procedure
quando inserir os dados eu gostaria que fizesse essa consulta:
Minha procedure
CREATE DEFINER=`root`@`localhost` PROCEDURE `InsereAluno`( IN varNome varchar(180), IN varTurma int(11), IN varIdade varchar(180) ) BEGIN insert into alunos(nome,turma,idade) values (varNome,varTurma,varIdade); END;
quando inserir os dados eu gostaria que fizesse essa consulta:
SELECT A.IdAluno, A.Nome, T.Turma FROM aluno A LEFT JOIN turma T ON A.Turma = T.IdTurma
Raniel Gomes
Curtidas 0
Respostas
Marisiana Battistella
20/02/2014
Bom dia Raniel!
Eu acho que não consegui entender qual é a tua dificuldade...
Você conseguiu criar a procedure?
Caso tenha conseguido, ela está realizando a inserção dos dados (está executando corretamente)?
Eu acho que não consegui entender qual é a tua dificuldade...
Você conseguiu criar a procedure?
Caso tenha conseguido, ela está realizando a inserção dos dados (está executando corretamente)?
GOSTEI 0
Raniel Gomes
20/02/2014
bem eu gostaria que depois de inserir ele fizesse uma consulta utilizando a mesma Procedure.
GOSTEI 0
Alex Lekao
20/02/2014
Oi Bom dia!!!
Se colocar esse select logo apos o insert nao faz?
esta dando algum erro?
Abraco.
Alex - Lekao
Se colocar esse select logo apos o insert nao faz?
esta dando algum erro?
Abraco.
Alex - Lekao
GOSTEI 0
Raniel Gomes
20/02/2014
O erro que ocorre Erro #1064
GOSTEI 0
Alex Lekao
20/02/2014
Oi Raniel,
o erro eh so isso, 1064?
o erro eh so isso, 1064?
GOSTEI 0
Raniel Gomes
20/02/2014
Yess
GOSTEI 0
Alex Lekao
20/02/2014
Eu tenho um mysqll instalado aqui...
vou ver se da certo a criacao.
ai ja posto o resultado aqui.
vou ver se da certo a criacao.
ai ja posto o resultado aqui.
GOSTEI 0
Raniel Gomes
20/02/2014
Na hora amigo...
GOSTEI 0
Alex Lekao
20/02/2014
Tenta assim e ve se funciona
CREATE DEFINER=`root`@`localhost` PROCEDURE `InsereAluno`( IN varNome varchar(180), IN varTurma int(11), IN varIdade varchar(180) ) insert into alunos(nome,turma,idade) values (varNome,varTurma,varIdade); SELECT A.IdAluno, A.Nome, T.Turma FROM aluno A LEFT JOIN turma T ON A.Turma = T.IdTurma
GOSTEI 0
Marisiana Battistella
20/02/2014
Raniel, esse exemplo que o Alex passou, funcionou?
GOSTEI 0
Alex Lekao
20/02/2014
Acho que nao vai funcionar... rssr
eu resolvi olhar a que criei do jeito que postei e o select nao estava la... rsrsr
o ponto eh virgula funciona como finalizador, acredito eu, e o select nao entrou na stored procedure.
quiz ajudar e fiz besteira... kkkkkkkkkkk
mas eu so nao entendi direito o porque de um select na estored procedure... rsrsr mas tudo bem...
eu resolvi olhar a que criei do jeito que postei e o select nao estava la... rsrsr
o ponto eh virgula funciona como finalizador, acredito eu, e o select nao entrou na stored procedure.
quiz ajudar e fiz besteira... kkkkkkkkkkk
mas eu so nao entendi direito o porque de um select na estored procedure... rsrsr mas tudo bem...
GOSTEI 0
Alex Lekao
20/02/2014
Raniel,
Estava testando aqui e parece que faltou isso antes de comecar a o create.
ai a procedure ficaria assim.
Testa ai e me nos informe se deu certo... rsrsr
no teste que eu fiz aqui funcionou.
Espero que de certo e que atenda a sua necessidade.
Abraco.
Alex - Lekao
Estava testando aqui e parece que faltou isso antes de comecar a o create.
DELIMITER $$
ai a procedure ficaria assim.
DELIMITER $$ CREATE DEFINER=`root`@`localhost` PROCEDURE `InsereAluno`( IN varNome varchar(180), IN varTurma int(11), IN varIdade varchar(180) ) begin insert into alunos(nome,turma,idade) values (varNome,varTurma,varIdade); SELECT A.IdAluno, A.Nome, T.Turma FROM aluno A LEFT JOIN turma T ON A.Turma = T.IdTurma; end
Testa ai e me nos informe se deu certo... rsrsr
no teste que eu fiz aqui funcionou.
Espero que de certo e que atenda a sua necessidade.
Abraco.
Alex - Lekao
GOSTEI 0
Marisiana Battistella
20/02/2014
Não posso palpitar na sintaxe pq não conheço praticamente nada do MySQL... =)
Mas fiquei com uma dúvida com relação a esse select dentro do procedimento de inserção...
Raniel, vc precisa que nesse select retorne os dados do registro que vc acabou de inserir, ou ele é um select pra retornar todos os dados?
Se for um select para retornar todos os dados, aconselho a criar um procedimentos apenas para essa finalidade, pois vc poderá utilizar ele em outras situações além dessa...
Mas fiquei com uma dúvida com relação a esse select dentro do procedimento de inserção...
Raniel, vc precisa que nesse select retorne os dados do registro que vc acabou de inserir, ou ele é um select pra retornar todos os dados?
Se for um select para retornar todos os dados, aconselho a criar um procedimentos apenas para essa finalidade, pois vc poderá utilizar ele em outras situações além dessa...
GOSTEI 0
Alex Lekao
20/02/2014
Eu tbm nao conheco... rssr
eu fiz uma instalacao em um VM e aqui e qdo preciso ver alguma coisa ou testar eu vejo la... rsrsr
eu fiz o procedimento de criacao da procedure pelo WorkBenq e ele indicou esse parameter, so assim deu cerrto... rsrsr
mas esse select tbm achei estranho... rssr mas blz...
espero que atenda ao que ele precisa.
eu fiz uma instalacao em um VM e aqui e qdo preciso ver alguma coisa ou testar eu vejo la... rsrsr
eu fiz o procedimento de criacao da procedure pelo WorkBenq e ele indicou esse parameter, so assim deu cerrto... rsrsr
mas esse select tbm achei estranho... rssr mas blz...
espero que atenda ao que ele precisa.
GOSTEI 0