Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Nigol

criar procedure com if

Recommended Posts

Não estou conseguindo realizar uma exclusão com o teste para ver se existe ou não o que vai ser excluido...

sou novo com MYSQL

 

CREATE PROCEDURE excluirEmail 
  (IN var_email VARCHAR(120))

BEGIN

   IF(SELECT email FROM newsletter WHERE var_email==email)
THEN
  DELETE FROM newsletter WHERE var_email=email;
ELSE
 SELECT 'ERRO AO EXCLUIR USUARIO' as Msg;

END IF;
END;

Compartilhar este post


Link para o post
Compartilhar em outros sites

Só uma sugestão . Tenta asim:

CREATE PROCEDURE excluirEmail 
 (IN var_email VARCHAR(120))

BEGIN

 IF(SELECT email FROM newsletter WHERE email==var_email)
THEN
 DELETE FROM newsletter WHERE email=var_email;
ELSE
 SELECT 'ERRO AO EXCLUIR USUARIO' as Msg;

END IF;
END;

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não deu certo

 

eis o erro a baixo..

 

Não consigo entende-lo

Parece haver um erro na sua consulta SQL. A saída do servidor MySQL abaixo, isto se existir alguma, também poderá ajudar a diagnosticar o problema.

ERROR: String de pontuação desconhecida @ 113
STR: ==
SQL: CREATE PROCEDURE excluirEmail 
 (IN var_email VARCHAR(120))

BEGIN

 IF(SELECT email FROM newsletter WHERE email==var_email)
THEN
 DELETE FROM newsletter WHERE email=var_email;CREATE PROCEDURE excluirEmail 
 (IN var_email VARCHAR(120))

BEGIN

 IF(SELECT email FROM newsletter WHERE email==var_email)
THEN
 DELETE FROM newsletter WHERE email=var_email;CREATE PROCEDURE excluirEmail 
 (IN var_email VARCHAR(120))

BEGIN

 IF(SELECT email FROM newsletter WHERE email==var_email)
THEN
 DELETE FROM newsletter WHERE email=var_email;CREATE PROCEDURE excluirEmail 
 (IN var_email VARCHAR(120))

BEGIN

 IF(SELECT email FROM newsletter WHERE email==var_email)
THEN
 DELETE FROM newsletter WHERE email=var_email;CREATE PROCEDURE excluirEmail 
 (IN var_email VARCHAR(120))

BEGIN

 IF(SELECT email FROM newsletter WHERE email==var_email)
THEN
 DELETE FROM newsletter WHERE email=var_email;


consulta SQL: [Documentação]

CREATE PROCEDURE excluirEmail (IN var_email VARCHAR(120)) BEGIN IF(SELECT email FROM newsletter WHERE email==var_email) THEN DELETE FROM newsletter WHERE email=var_email;

Mensagens do MySQL : [Documentação]
#1064 - 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 '==var_email)
THEN
DELETE FROM newsletter WHERE email=var_email' at line 6

 

Só uma sugestão . Tenta asim:

CREATE PROCEDURE excluirEmail 
 (IN var_email VARCHAR(120))

BEGIN

 IF(SELECT email FROM newsletter WHERE email==var_email)
THEN
 DELETE FROM newsletter WHERE email=var_email;
ELSE
 SELECT 'ERRO AO EXCLUIR USUARIO' as Msg;

END IF;
END;

Compartilhar este post


Link para o post
Compartilhar em outros sites

i aew carinha, bom troca a linha:

IF(SELECT email FROM newsletter WHERE email==var_email)

por essa:

IF(SELECT email FROM newsletter WHERE email=var_email)

espero que ajude abraço!

Compartilhar este post


Link para o post
Compartilhar em outros sites

TROQUEI MAS DA Esse erro agora...

 

 

consulta SQL: [Documentação]

 

CREATE PROCEDURE excluirEmail(

IN var_email VARCHAR( 120 )

) BEGIN IF( SELECT email

FROM newsletter

WHERE email = var_email )

THEN

DELETE FROM newsletter WHERE email = var_email;

 

Mensagens do MySQL : [Documentação]

#1064 - 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 8

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pelo que na referência do Mysql o if seria assim IF(expr1,expr2,expr3):

CREATE PROCEDURE excluirEmail(
IN var_email VARCHAR( 120 )
) BEGIN 
IF( SELECT email FROM newsletter WHERE email = var_email ),DELETE FROM newsletter WHERE email = var_email);

http://dev.mysql.com/doc/refman/4.1/pt/control-flow-functions.html

Compartilhar este post


Link para o post
Compartilhar em outros sites

cara não é possivel, coloca desse jeito aqui:

DELIMITER $
CREATE PROCEDURE excluirEmail(IN var_email VARCHAR( 120 ))
BEGIN
 IF ( SELECT email
       FROM newsletter
      WHERE email = var_email )
 THEN
   DELETE FROM newsletter WHERE email = var_email;
 END IF ;
END $
DELIMITER ;

boa sorte!

Compartilhar este post


Link para o post
Compartilhar em outros sites

No SqlServer, existe um comando que uso para este tipo de situação, o if exists... não sei se o mysql tem este recurso mas, se tiver, ficaria assim seu sql (+/-).

 

CREATE PROCEDURE excluirEmail 
 (IN var_email VARCHAR(120))

BEGIN

 IF exists ( SELECT 1 
			 FROM newsletter 
			 WHERE email==var_email)
 begin
	 DELETE FROM newsletter WHERE email=var_email
 end
 else
	 SELECT 'ERRO AO EXCLUIR USUARIO' as Msg)

 END IF;
END;

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.