Boca 0 Denunciar post Postado Fevereiro 14, 2014 Pessoal preciso fazer a seguinte p mas esta apresentando erro A logica é aseguinte Verificar a tabela TBA se o status XX então atualiza a tabela TBB conforme o ID da tabela TBA CREATE PROCEDURE Ajuste (IN dados TEXT) BEGIN IF(SELECT COD into ID FROM TBA WHERE DADO=dados) THEN UPDATE TBB SET status=2 Where ID=COD; END IF; END;Execute CALL Ajuste('XX'); Compartilhar este post Link para o post Compartilhar em outros sites
paulojuchem 20 Denunciar post Postado Fevereiro 14, 2014 no mysql vc nao precisa declarar as variaveis, que nem ali no 'INTO ID' mas se vc quiser utilizar ela, vc precisa usar @ID, nao tenho certeza se esse é o erro, mas tenta assim CREATE PROCEDURE Ajuste (IN dados TEXT) BEGIN IF(SELECT COD into ID FROM TBA WHERE DADO=@dados) THEN UPDATE TBB SET status=2 Where @ID=COD; END IF; END; Compartilhar este post Link para o post Compartilhar em outros sites
Boca 0 Denunciar post Postado Fevereiro 14, 2014 Paulo não deu certo Compartilhar este post Link para o post Compartilhar em outros sites
paulojuchem 20 Denunciar post Postado Fevereiro 15, 2014 Opa, me equivoquei um pouco xD. essa aqui funciona, vc só pecisa ajustar ela CREATE PROCEDURE pcr_atualiza_saldoSMS(IN saldo INT, IN clientesistema INT) BEGIN SET @sql_text:=CONCAT("UPDATE clientessistemas SET saldo=",saldo," WHERE id=",clientesistema); PREPARE stmt FROM @sql_text; EXECUTE stmt; END os parametros que vem la da procedure n precisam de @, mas vc precisa montar a query como acima ou setar uma variavel para receber ela, o codigo acima poderia ser escrito da seguinte forma: CREATE PROCEDURE pcr_atualiza_saldoSMS(IN saldo INT, IN clientesistema INT) BEGIN SET @s = saldo; SET @c = clientesistema; UPDATE clientessistemas SET saldo=@s WHERE id=@c; END No seu caso, eu n sei o que o if esta retornando, talvez vc possa debugar ele depois, ficaria algo assim: CREATE PROCEDURE Ajuste (IN dados TEXT) BEGIN SET @d = dados; IF(SELECT COD into ID FROM TBA WHERE DADO=@d) THEN UPDATE TBB SET status=2 Where @ID=COD; END IF; END; o @id a gente pode usar ele direto pq o into ID ja faz isso EDIT: talvez vc precise de um LIMIT no select Compartilhar este post Link para o post Compartilhar em outros sites