+1

existe uma maneira de deletar todos os dados de uma tabela, mantendo apenas um registro, com um unico comando?

criado por Lucas Vasconcelos em 24/11/2003 6:36am
Nenhuma descrição foi enviada.

Lista de Respostas:

0
24/11/2003 11:50am
(~20 anos atrás)
delete from minha_tabela WHERE codigo NOT IN ('unico codigo')

acho que seria a melhor maneira

espero ter ajudado

0
24/11/2003 12:26pm
(~20 anos atrás)
Diogo Gomes respondeu:
Ótimo se existirem códigos únicos... (o mais recomendado)
Você pode trabalhar com a instrução DELETE de várias formas, geralmente é assim:
DELETE FROM tabela [WHERE condição] [LIMIT número]

Se você escrever DELETE FROM tabela, vai apagar todos os registros dela. DELETE FROM tabela WHERE cod=5, vai apagar todos os registros em que o campo cod seja igual a 5. Acrescentanto o LIMIT, você pode controlar o número máximo de linhas que serão realmente excluídas.

0
24/11/2003 3:21pm
(~20 anos atrás)
Victor Henrique respondeu:
Acredito que a resposta do Marcelo seja a mais aceitável, pois você utiliza a cláusula WHERE pra definir que serão excluídos TODOS os registros, exceto os que estiverem dentro daquela lista.
Você pode utilizar também DELETE FROM tabela WHERE cod <> 'string'.
Apenas um comando é necessário, mas tenha certeza do que está fazendo, pois este comando, geralmente, não tem volta.

0
24/11/2003 10:08pm
(~20 anos atrás)
Alessander Thomaz respondeu:
Delete from tabela where cod <> $cod

poderia ser uma solução.
É ruim usar o limit pois é difícil saber quantos registros realmente apagaria, seria necessário um select para obter essa informação, carregando mais ainda o banco com um comando desnecessário.

Claro, existem situações que o limit pode ser interessante na exclusão (eu sinceramente nunca usei), mas em vias de regras, quase nunca é usado o limit em exclusões.

0
26/11/2003 5:40am
(~20 anos atrás)
Newton Wagner respondeu:
Eu uso o LIMIT apenas quando acredito que possam existir mais de um registro identico na tabela. Digamos que você tem uma lista de emails e, por algum motivo um email saiu repetido. Vc usa o limit pra remover as duplicidades! :)

0
02/12/2003 12:58pm
(~20 anos atrás)
DELETE FROM $table WHERE CAMPO != '$valor'

0
02/12/2003 2:35pm
(~20 anos atrás)
só tomem cuidado com sinais..
que há diferença de banco para banco

alguns podem rejeitar as sintaxes..
foram apresentadas muitas idéias

not in
!=
<>

etc..

pode ser que alguma dessas apresentadas não funcione.

Espero ter ajudado

0
03/12/2003 12:22pm
(~20 anos atrás)
Utilizo "!=" e funciona legal, até hoje nunca tive problemas :)


Destinus

0
07/12/2003 9:08am
(~20 anos atrás)
DELETE FROM nome_tabela WHERE campo_tabela &lt;&gt; $nao_apagar;

onde:

campo_tabela é o nome do campo que identifica o campo que vc quer tirar, caso não tenha um campo com identificar único, utilize mais informações para informar a linha certa que não deverá ser apagada. Assim:

DELETE FROM nome_tabela WHERE campo_tabela &lt;&gt; $nao_apagar AND campo2_tabela &lt;&gt; $nao_apagar2 AND campo3_tabela &lt;&gt; $nao_apagar3;

Abraço,

Fabrício

Nova Resposta:

(Você pode usar tags como <b>, <i> ou <code>. URLs serão convertidas para links automaticamente.)