25 de septiembre de 2012

Resetear/Inicializar autonumérico en SQL Server, MySQL, SQLite y Oracle

Es muy común que cuando estamos realizando pruebas en una base de datos trunquemos algunas tablas para poder ejecutar un nuevo proceso que la vuelva a llenar o bien simplemente para limpiarla. Dependiendo el motor de la base de datos es la opción que debemos usar para dicha operación.



A continuación snippets para reinicializar el autonumérico o número de identificación en una tabla:

Para SQL Server

DBCC CHECKIDENT('nombre_tabla', reseed, 1);


Para MySQL

ALTER TABLE nombre_tabla AUTO_INCREMENT = 1;


Para SQLite

DELETE FROM sqlite_sequence WHERE name='nombre_tabla';


Para ORACLE:

Oracle es una base de datos especial y cualquier persona que la haya utilizado un poco sabrá que en dicho motor no existe tal concepto como autonumérico. Lo que se maneja en Oracle son las denominadas secuencias que son funciones las cuales nos retornan estos autonuméricos, para Oracle no podemos alterar simplemente la secuencia por lo cual debemos eliminarla y recrearla:

DROP SEQUENCE esquema.secuencia;
CREATE SEQUENCE esquema.secuencia MINVALUE 1 MAXVALUE 9999999999999999 INCREMENT BY 1 START WITH 1;


El keyword MINVALUE en este caso es el que nos indica en donde empezará el nuevo ID.

No hay comentarios:

Publicar un comentario