Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Duzao®

Como deletar todos os registros da Tabela?

Recommended Posts

Olá pessoal...

 

Eu gostaria de criar um código onde eu deletasse todos os registros de uma determinada tabela(No exemplo irei mencionar TB_CLIENTE).

 

Se eu fizer "DELETE FROM TB_CLIENTE", irá dar erro de FK, pois alguns registros existem correspondencias em outras tabelas...

 

Entao...Gostaria de deletar todos e deixar somente os registros que já tem uma chave correspondente em uma outra tabela(FK).

 

Em Oracle eu sei fazer isso... simples:

 

DECLARE

 CURSOR c_Temp IS
  SELECT  cd, 
		  nm, 
		  sg, 
		  dt_inclusao, 
		  usu_inclusao, 
		  dt_ultima_atualizacao, 
		  usu_id_atualizacao, 
		  no_camara, 
		  ic_desativado, 
		  ic_nao_act 
  FROM TB_CLIENTE
  ORDER BY cd;
  
  r_Temp  c_Temp%ROWTYPE;

Begin
		
  OPEN c_Temp;
  LOOP
  
  FETCH c_Temp INTO r_temp;
  EXIT WHEN c_Temp%NOTFOUND;
		
	 BEGIN
		DELETE FROM TB_CLIENTE WHERE CD = r_temp.CD;
	 EXCEPTION
		WHEN OTHERS THEN NULL;
	 end;
	  
  END LOOP;
  CLOSE c_Temp;

  COMMIT;
end;

 

Se possivel, seria interessante deletar TODOS...nao somente os que nao tem correspondente em outra tabela...

Mas seria interessante se alguem me ajudasse com a SINTAXE neste código.

 

Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olha só... Você pode dar um comando assim...

 

DELETE FROM CLIENTES

WHERE cod_clientes not in (select cod_clientes from PRODUTOS);

 

Essa sintaxe funciona no SQL Server, não tentei ainda no MySQL, mas talvez te ajude.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.