existe uma maneira de deletar todos os dados de uma tabela, mantendo apenas um registro, com um unico comando?
Nenhuma descrição foi enviada.
comentários (0)
suspender
Lista de Respostas:
24/11/2003 11:50am
(~21 anos atrás)
(~21 anos atrás)
delete from minha_tabela WHERE codigo NOT IN ('unico codigo')
acho que seria a melhor maneira
espero ter ajudado
acho que seria a melhor maneira
espero ter ajudado
24/11/2003 12:26pm
(~21 anos atrás)
(~21 anos atrás)
Ó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.
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.
24/11/2003 3:21pm
(~21 anos atrás)
(~21 anos atrás)
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.
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.
24/11/2003 10:08pm
(~21 anos atrás)
(~21 anos atrás)
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.
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.
26/11/2003 5:40am
(~21 anos atrás)
(~21 anos atrás)
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! :)
02/12/2003 12:58pm
(~21 anos atrás)
(~21 anos atrás)
DELETE FROM $table WHERE CAMPO != '$valor'
02/12/2003 2:35pm
(~21 anos atrás)
(~21 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
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
03/12/2003 12:22pm
(~21 anos atrás)
(~21 anos atrás)
Utilizo "!=" e funciona legal, até hoje nunca tive problemas :)
Destinus
Destinus
07/12/2003 9:08am
(~21 anos atrás)
(~21 anos atrás)
DELETE FROM nome_tabela WHERE campo_tabela <> $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 <> $nao_apagar AND campo2_tabela <> $nao_apagar2 AND campo3_tabela <> $nao_apagar3;
Abraço,
Fabrício
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 <> $nao_apagar AND campo2_tabela <> $nao_apagar2 AND campo3_tabela <> $nao_apagar3;
Abraço,
Fabrício