Fórum Dois comandos em Stored Procedure #470614

20/02/2014

0

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

Responder

Posts

20/02/2014

Marisiana Battistella

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)?
Responder

Gostei + 0

20/02/2014

Raniel Gomes

bem eu gostaria que depois de inserir ele fizesse uma consulta utilizando a mesma Procedure.
Responder

Gostei + 0

20/02/2014

Alex Lekao

Oi Bom dia!!!

Se colocar esse select logo apos o insert nao faz?

esta dando algum erro?

Abraco.

Alex - Lekao
Responder

Gostei + 0

20/02/2014

Raniel Gomes

O erro que ocorre Erro #1064
Responder

Gostei + 0

20/02/2014

Alex Lekao

Oi Raniel,

o erro eh so isso, 1064?
Responder

Gostei + 0

20/02/2014

Raniel Gomes

Yess
Responder

Gostei + 0

20/02/2014

Alex Lekao

Eu tenho um mysqll instalado aqui...

vou ver se da certo a criacao.

ai ja posto o resultado aqui.
Responder

Gostei + 0

20/02/2014

Raniel Gomes

Na hora amigo...
Responder

Gostei + 0

20/02/2014

Alex Lekao

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
Responder

Gostei + 0

21/02/2014

Marisiana Battistella

Raniel, esse exemplo que o Alex passou, funcionou?
Responder

Gostei + 0

21/02/2014

Alex Lekao

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

Responder

Gostei + 0

21/02/2014

Alex Lekao

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
Responder

Gostei + 0

21/02/2014

Marisiana Battistella

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

Gostei + 0

21/02/2014

Alex Lekao

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

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar