Como chamar uma query dentro de uma função mysql?(resolvido)

3 respostas
brenoeaf

Como faço para passar e chamar uma query que já esta pronta na aplicação,dentro de uma função mysql?
Obs: A query sera definida na aplicação, a função apenas chama a query para fazer update ou insert

Exemplo

parametro (queryupdate,queryinsert)

select campo1,campo2 from dados,pessoa

if campo1=campo2 then

executar queryupdate,

else
executar queryinsert,

end if

3 Respostas

peppe

Já tentou fazer como se faz com uma procedure?

brenoeaf

Não,vou tentar…

brenoeaf

O que estava precisando resolvi com procedure.
Neste exemplo eu passo como parametro a tabela, a consulta insert a consulta update e o filtro.
Obrigado a todos pela ajuda!!!
Valeu.

DELIMITER $$

USE `forum`$$

DROP PROCEDURE IF EXISTS `spInsertorUpdate`$$

CREATE DEFINER=`root`@`%` PROCEDURE `spInsertorUpdate`( 
IN cTabela VARCHAR ( 25 ), 
IN cInsert TEXT, 
IN cUpdate TEXT, 
IN cFiltro TEXT )
BEGIN
SET @a = CONCAT('SELECT count(*) INTO @nRetorno FROM ',cTabela,' WHERE ',cFiltro);
  PREPARE stmt FROM @a;
   
IF (@nRetorno)=0 THEN
SET @b = CONCAT('INSERT INTO ',cInsert);
   PREPARE stmt1 FROM @b;
    EXECUTE stmt1;
    ELSE
 SET @c = CONCAT('UPDATE ',cUpdate);
PREPARE stmt2 FROM @c;
    EXECUTE stmt2;
    END IF;
 DEALLOCATE PREPARE stmt;
  DEALLOCATE PREPARE stmt1;
  DEALLOCATE PREPARE stmt2;
  
END$$

DELIMITER ;
Criado 1 de abril de 2010
Ultima resposta 14 de abr. de 2010
Respostas 3
Participantes 2