Duzao® 0 Denunciar post Postado Novembro 1, 2007 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
fared 0 Denunciar post Postado Novembro 1, 2007 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