Dois comandos em Stored Procedure

MySQL

20/02/2014

Gostaria de inserir e consultar na mesma procedure como poderia fazer isso?

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

Raniel Gomes

Curtidas 0

Respostas

Marisiana Battistella

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)?
GOSTEI 0
Raniel Gomes

Raniel Gomes

20/02/2014

bem eu gostaria que depois de inserir ele fizesse uma consulta utilizando a mesma Procedure.
GOSTEI 0
Alex Lekao

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
GOSTEI 0
Raniel Gomes

Raniel Gomes

20/02/2014

O erro que ocorre Erro #1064
GOSTEI 0
Alex Lekao

Alex Lekao

20/02/2014

Oi Raniel,

o erro eh so isso, 1064?
GOSTEI 0
Raniel Gomes

Raniel Gomes

20/02/2014

Yess
GOSTEI 0
Alex Lekao

Alex Lekao

20/02/2014

Eu tenho um mysqll instalado aqui...

vou ver se da certo a criacao.

ai ja posto o resultado aqui.
GOSTEI 0
Raniel Gomes

Raniel Gomes

20/02/2014

Na hora amigo...
GOSTEI 0
Alex Lekao

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

Marisiana Battistella

20/02/2014

Raniel, esse exemplo que o Alex passou, funcionou?
GOSTEI 0
Alex Lekao

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...

GOSTEI 0
Alex Lekao

Alex Lekao

20/02/2014

Raniel,

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

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...
GOSTEI 0
Alex Lekao

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.
GOSTEI 0
POSTAR