< Somenekers />
Developers Team




> >

Alterando id automático dos registros com procedures MYSQL

Publicado em: /



Neste artigo vamos explicar como criar uma rotina/procedure que altere a numeração automática de todos os registros de uma determinada tabela iniciando novamento pelo registro número (1). Você também aprenderá como fazer um Looping utilizando procedure.

DELIMITER $$

CREATE DEFINER=`root`@`%` PROCEDURE `procIdAuto`()
BEGIN   

  DECLARE contador INT DEFAULT 0;
  DECLARE resp INT DEFAULT 0;
  DECLARE existe_mais_linhas INT DEFAULT 0;   
  DECLARE var_idEmpresa int;   

DECLARE varreTabela CURSOR FOR SELECT idauto FROM empresas ORDER BY idauto ASC;    

DECLARE CONTINUE HANDLER FOR NOT FOUND SET existe_mais_linhas=1;   

  OPEN varreTabela;   
  
  meuLoop: LOOP   
  FETCH varreTabela INTO var_idEmpresa;   
  
  IF existe_mais_linhas = 1 THEN   
  LEAVE meuLoop;   
  END IF;
     
  set contador = contador +1;

  UPDATE empresas SET idauto = contador WHERE idauto = var_idEmpresa;
  
  SET resp = (SELECT COUNT(idauto) FROM responsaveis WHERE id_empresa = var_idEmpresa);
  
  IF(resp > 0) THEN
  UPDATE responsaveis SET id_empresa = contador WHERE id_empresa = var_idEmpresa;
  END IF;

  END LOOP meuLoop;
  
END



Clique abaixo para dar sua nota no artigo e compartilhar!


Rating: 1.8/5 (6 votos)




comments powered by Disqus