Nigol 0 Denunciar post Postado Março 11, 2010 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
jothaz 1 Denunciar post Postado Março 16, 2010 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
Nigol 0 Denunciar post Postado Março 16, 2010 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
romerito 11 Denunciar post Postado Março 16, 2010 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
Nigol 0 Denunciar post Postado Março 16, 2010 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
jothaz 1 Denunciar post Postado Março 16, 2010 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
romerito 11 Denunciar post Postado Março 17, 2010 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
Chrnos 30 Denunciar post Postado Março 18, 2010 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