Definición de columnas autoincrementales “identity” en DB2

En DB2 es posible crear columnas autoincrementales, es decir, cuyo valor en caso de no definirse en una inserción se vaya incrementando a partir de unos valores definidos. Este tipo de columnas también se pueden definir en SQL Server, y en Oracle se realiza a través de secuencias.

La mejor manera de explicarlo es con un ejemplo: a continuación se muestra la creación de una tabla con una columna autoincremental que es primary key.

Creación de la tabla ESTUDIANTES con la columna ID definida como autoincremental:

CREATE TABLE ESTUDIANTES

(

ID_ESTUDIANTE SMALLINT NOT NULL

GENERATED ALWAYS AS IDENTITY

(START WITH 500, INCREMENT BY 1),

NOMBRE VARCHAR(36),

APELLIDOS VARCHAR(80),

PRIMARY KEY(ID_ESTUDIANTE) )

 

Inserción de diversos registros sin especificar el campo:

db2 => insert into estudiantes (nombre, apellidos) values ('PEPE','SANCHEZ')

DB20000I The SQL command completed successfully.db2 => insert into estudiantes

 (nombre, apellidos) values (‘JOHN’,’SMITH’)

DB20000I The SQL command completed successfully.

 

Seleccionamos los datos para ver los valores asignados al campo ID:

db2 => select * from estudiantes

ID_ESTUDIANTE NOMBRE APELLIDOS

——————— ———— ————–

500 PEPE SANCHEZ

501 JOHN SMITH
2 record(s) selected.

 

Como se puede observar se han asignado valores consecutivos a partir de 500.