Ir para conteúdo
Fórum Script Brasil
  • 0

Prcedure no MySQL


Felipe ( Primow.com.br )

Pergunta

Boa tade,

Estava lendo sobre procedure no MySQL e fiquei sabendo que só funciona no MySQL superior ao 5.0, porém no servidor onde eu estou hospedando meu site, a versão do MySQL é a 5.1.30 e minha dúvida é o seguinte.

O client também precisa ser o 5.1.30?

O client que estou usando é o 5.1.11 porém não consigo criar procedure. Estou usando o MySQL Administrator e ele já tem a opção de criar procedure.

Segue o código da procedure.

CREATE PROCEDURE `minhabase`.`sp_teste` ()

BEGIN

SELECT * FROM `minhabase`.`t_teste`

END

Segue o erro.

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 4

alguém poderia me ajudr sobre essa questão?

Desde já agradeço.

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

Oi, 'Felipe ( Primow.com.br )'!

Você não está conseguindo criar a procedure porque você está errando na sintaxe.

Vamos as regras:

1 - todo comando no mysql é terminado pelo caracter ponto-e-virgula;

2 - Como você vai necessitar usar este caracter para informar o término de cada linha de comando dentro da procedure, você terá que usar outro caracter para informar que o comando CREATE PROCEDURE iniciou e finalizou;

3 - Ao final da criação da procedure você deverá informar que o caracter sinalizador de final de linha de comando voltou a ser o ponto-e-virgula.

Vejamos seu exemplo corrigido e comantado. (os comentários estarão entre os caracteres /* e */

DELIMITER $$; /* modifica o caracter sinalizador de final de linha de comando para $$ */
CREATE PROCEDURE `minhabase`.`sp_teste` ()
BEGIN
      SELECT * FROM `minhabase`.`t_teste`; /* o caracter que informa o final de linha de comando dentro do comando procedure continua sendo o ponto-e-virgula */
END$$ /*  o caracter que informa o final de linha de comando fora do comando procedure é o $$ */
DELIMITER;$$ /* modifica o caracter sinalizador de final de linha de comando de volta para o; */

Link para o comentário
Compartilhar em outros sites

  • 0

Boa tarde Denis Courcy,

Copiei e colei o código que você me passou, porém o mesmo não funcionou.

Exibiu o seguinte erro:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'DELIMITER;$$' at line 5

Para usar o 'DELIMITER' precisa ter alguma versão especial?

Grato.

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.


  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...