Quero eliminar todos os registros que há em uma tabela em um banco de dados MySQL. Desejo que a tabela fique totalmente vazia.
Pois poderia fazer duas coisas, sempre através da linguagem SQL. Indico a sintaxe para um banco de dados MySQL, embora não seja muito diferente para outros sistemas gerenciadores de banco de dados.
Primeiro, uma sentença que apaga todos os dados de uma tabela:
delete from nometabela where 1
Isto elimina todos os dados da tabela, simplesmente apagando todos os registros.
Outra possibilidade é:
truncate nometabela
Isto esvazia a tabela e o efeito é parecido a fazer um delete de todos os registros. A diferença entre o delete e o truncate é que com truncate se inicia tudo o que havia na tabela.
Por exemplo, imaginemos que temos uma tabela de usuários e que temos até 100 usuários e um campo auto-numérico que se chama id_usuario. Se fôssemos pelo usuário 100, um possível novo usuário seria inserido como id 101.
Imaginemos que estamos no ponto no qual tínhamos 100 usuários e então, fazemos um delete de todos os registros, com a sentença delete. Então, se apagariam todos os registros, porém se inseríssemos um novo registro, este se inseriria com o id 101.
Agora também, imaginemos que estamos no mesmo ponto no qual temos 100 usuários e logo fazemos um truncate ao invés de um delete e apagamos todos os registros. Então, se inseríssemos um registro novo quando a tabela tiver sido esvaziada com um truncate, o registro entrará com id 1.
Por Miguel Angel