BRANCO_STYLE Postado Dezembro 7, 2009 Denunciar Share Postado Dezembro 7, 2009 Pessoal como faço pra resolver o seguinte problema :Eu gostaria que quando fosse inserir dados em uma determinada tabela primeiro o cursor verificasse se já existisse este registro caso exista ele atualize caso contrario ele insere o registro....como faço isso com cursor no mysql ?grato Branco Link para o comentário Compartilhar em outros sites More sharing options...
0 Anderson Ferreira Postado Dezembro 7, 2009 Denunciar Share Postado Dezembro 7, 2009 Desculpe, pode ser até meio 'boba' esta minha pergunta...Mais na questão de cursor, seria o cursor do mouse?Não entendi muito bem sua pergunta.Entendi q você qr verificar se um dado existe ou não certo, mais a questão do cursor, não entendi :S Link para o comentário Compartilhar em outros sites More sharing options...
0 Denis Courcy Postado Dezembro 7, 2009 Denunciar Share Postado Dezembro 7, 2009 Não entendi muito bem sua pergunta.Entendi q você qr verificar se um dado existe ou não certo, mais a questão do cursor, não entendi :SOi, Anderson! convém que você estude sobre cursores e fetch em Storages procedures no MySQL.Oi, BRANCO_STYLE!Pesquisas através de cursores somente em storages procedures. se não for este o caso então é melhor que você controle através de índices únicos e /ou sua linguagem de programação.A procedure abaixo é um exemplo do uso de cursor./* Procedure structure for procedure `inclui_em_teste1` */ drop procedure if exists `inclui_em_teste1`; DELIMITER $$; CREATE DEFINER=`root`@`localhost` PROCEDURE `inclui_em_teste1`() BEGIN DECLARE m_nome CHAR(60); DECLARE eof_teste INTEGER DEFAULT 0; /* cria a variavel que servirá de controle para EOF */ DECLARE cur_teste CURSOR FOR /* Cria o cursor que trabalhará o select */ SELECT nome FROM teste; DECLARE CONTINUE HANDLER FOR NOT FOUND SET eof_teste = 1; /* Cria a chave que verificará e mudará o valor da variavel de eof quando o select chegar ao final */ OPEN cur_teste; /* abre o select */ FETCH cur_teste INTO m_nome; /* Le a linha */ WHILE NOT m_eof DO START TRANSACTION; INSERT INTO teste1 (codigo, nome) VALUES ((SELECT (max(t1.codigo)+1) FROM teste1), m_nome); COMMIT; END WHILE; CLOSE cur_teste; /* fecha o select */ END$$ DELIMITER;$$ Link para o comentário Compartilhar em outros sites More sharing options...
0 Anderson Ferreira Postado Dezembro 7, 2009 Denunciar Share Postado Dezembro 7, 2009 eawiwaieiwae .. viajeei de maais agoora :XMUITO obrigado pela dica Denis,Abraços ..Anderson Ferreira Link para o comentário Compartilhar em outros sites More sharing options...
0 BRANCO_STYLE Postado Dezembro 7, 2009 Autor Denunciar Share Postado Dezembro 7, 2009 OBRIGADO DENIS ERA ISSO MESMO QUE EU KERIA, É Q NO ORACLE você TEM OS COMANDO FOUND E O NOT FOUND QUE VERIFICAM ISSO.....EXEMPLO SE O CURSOR ENCONTROU ENTÃO ELE ATUALIZA SE NÃO ELE INSERE, EXEMPLO UM CADASTRO DE CLIENTES SE EU DIGITAR OS DADOS DE UM CLIENTE O CURSOR VAI VERIFICAR ANTES DE INSERIR EVITANDO ASSIM UMA DUPLICIDADE DE CADASTRO..GRATO BRANCO Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
BRANCO_STYLE
Pessoal como faço pra resolver o seguinte problema :
Eu gostaria que quando fosse inserir dados em uma determinada tabela primeiro o cursor verificasse se já existisse este registro caso exista ele atualize caso contrario ele insere o registro....
como faço isso com cursor no mysql ?
grato
Branco
Link para o comentário
Compartilhar em outros sites
4 respostass a esta questão
Posts Recomendados