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.