Está en la página 1de 3

Comando truncate table.

Aprendimos que para borrar todos los registro de una tabla se usa "delete" sin
condicin "where".
Tambin podemos eliminar todos los registros de una tabla con "truncate
table". Por ejemplo, queremos vaciar la tabla "libros", usamos:
truncate table libros;
La sentencia "truncate table" vaca la tabla (elimina todos los registros) y
vuelve a crear la tabla con la misma estructura.
La diferencia con "drop table" es que esta sentencia borra la tabla, "truncate
table" la vaca.
La diferencia con "delete" es la velocidad, es ms rpido "truncate table" que
"delete" (se nota cuando la cantidad de registros es muy grande) ya que ste
borra los registros uno a uno.
Otra diferencia es la siguiente: cuando la tabla tiene un campo
"auto_increment", si borramos todos los registros con "delete" y luego
ingresamos un registro, al cargarse el valor en el campo autoincrementable,
contina con la secuencia teniendo en cuenta el valor mayor que se haba
guardado; si usamos "truncate table" para borrar todos los registros, al ingresar
otra vez un registro, la secuencia del campo autoincrementable vuelve a
iniciarse en 1.
Por ejemplo, tenemos la tabla "libros" con el campo "codigo" definido
"auto_increment", y el valor ms alto de ese campo es "5", si borramos todos
los registros con "delete" y luego ingresamos un registro sin valor de cdigo, se
guardar el valor "6"; si en cambio, vaciamos la tabla con "truncate table", al
ingresar un nuevo registro sin valor para el cdigo, iniciar la secuencia en 1
nuevamente.
Trabajamos con la tabla "libros" de una librera.
Eliminamos la tabla, si existe:
drop table if exists libros;
Creamos la tabla:
create table libros(
codigo integer auto_increment,
titulo varchar(20),

autor varchar(30),
editorial varchar(15),
primary key (codigo)
);
Ingresamos algunos registros:
insert into libros (titulo,autor,editorial)
values('Martin Fierro','Jose Hernandez','Planeta');
insert into libros (titulo,autor,editorial)
values('Aprenda PHP','Mario Molina','Emece');
insert into libros (titulo,autor,editorial)
values('Cervantes y el quijote','Borges','Paidos');
insert into libros (titulo,autor,editorial)
values('Matematica estas ahi', 'Paenza', 'Paidos');
insert into libros (titulo,autor,editorial)
values('El aleph', 'Borges', 'Emece');
Eliminemos todos los registros con "delete":
delete from libros;
Veamos el resultado:
select * from libros;
La tabla ya no contiene registros.
Ingresamos un nuevo registro:
insert into libros (titulo,autor,editorial)
values('Antologa poetica', 'Borges', 'Emece');
Veamos el resultado:
select * from libros;
Para el campo "codigo" se guard el valor 6 porque el valor ms alto de ese
campo, antes de eliminar todos los registros era "5".

Ahora vaciemos la tabla:


truncate table libros;
Veamos qu sucede si ingresamos otro registro sin valor para el cdigo:
insert into libros (titulo,autor,editorial)
values('Antologa poetica', 'Borges', 'Emece');
Vemos que la secuencia de "codigo" empez en 1 nuevamente.
Ejecutamos entonces:
select * from libros;

También podría gustarte