Eu uso o wampserver 2.2. Quando eu quero excluir todos os registros de uma tabela no phpMyAdmin (selecionar tudo), ele exclui apenas um registro, não todos os registros. Por que não exclui todos os registros?
SHIFT-DEL
Eu uso o wampserver 2.2. Quando eu quero excluir todos os registros de uma tabela no phpMyAdmin (selecionar tudo), ele exclui apenas um registro, não todos os registros. Por que não exclui todos os registros?
SHIFT-DEL
Respostas:
Você tem 2 opções delete
e truncate
:
delete from mytable
Isso vai deletar todo o conteúdo da tabela, não zerando o id autoincremental, esse processo é muito lento. Se você deseja excluir registros específicos, anexe uma cláusula where no final.
truncate myTable
Isso redefinirá a tabela, ou seja, todos os campos incrementais automáticos serão redefinidos. É um DDL e muito rápido. Você não pode excluir nenhum registro específico truncate
.
Vá para a guia Sql e execute uma das seguintes consultas:
delete from tableName;
Excluir : irá excluir todas as linhas de sua tabela. A próxima inserção terá o próximo ID de incremento automático.
ou
truncate tableName;
Truncar : também excluirá as linhas de sua tabela, mas começará a partir de uma nova linha com 1.
Um blog detalhado com exemplo: http://sforsuresh.in/phpmyadmin-deleting-rows-mysql-table/
Use esta consulta:
DELETE FROM tableName;
Observação: para excluir algum registro específico, você também pode fornecer a condição na cláusula where na consulta.
OU você também pode usar esta consulta:
truncate tableName;
Lembre-se também de que você não deve se relacionar com outra mesa. Se houver qualquer restrição de chave estrangeira na tabela, esse registro não será excluído e apresentará o erro.
'Truncar nome_da_tabela' falhará em uma tabela com restrição de chave definida. Também não reindexará o AUTO_INCREMENT
valor da tabela . Em vez disso, exclua todas as entradas da tabela e redefina a indexação de volta para 1 usando esta sintaxe sql:
DELETE FROM tableName;
ALTER TABLE tableName AUTO_INCREMENT = 1
Um fato interessante.
Eu tinha certeza de que o TRUNCATE sempre terá um desempenho melhor, mas no meu caso, para um banco de dados com aproximadamente 30 tabelas com chaves estrangeiras, preenchidas com apenas algumas linhas, demorou cerca de 12 segundos para TRUNCAR todas as tabelas, em vez de apenas algumas centenas de milissegundos para EXCLUIR as linhas. Definir o incremento automático adiciona cerca de um segundo no total, mas ainda é muito melhor.
Portanto, sugiro que experimente os dois, veja qual funciona mais rápido para o seu caso.
escreva a consulta: truncate 'Your_table_name';
DELETE FROM tableName