Ir para o conteúdo

Publicidade

 Estatísticas do Fórum

  • 0 Usuários ativos

    0 membro(s), 0 visitante(s) e 0 membros anônimo(s)

Cursos Online iMasters
Foto:

Como deletar todos os registros da Tabela?

  • Por favor, faça o login para responder
1 resposta neste tópico

#1 Duzao®

Duzao®
  • Membros
  • 3 posts

Postado 01 novembro 2007 - 10:10

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.
  • 0

#2 fared

fared
  • Membros
  • 5 posts

Postado 01 novembro 2007 - 10:21

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.
  • 0




Publicidade

/ins>