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.

 

Espero que os sea de utilidad!

 

 

Si te gustó esta entrada anímate a escribir un comentario o suscribirte al feed y obtener los artículos futuros en tu lector de feeds.

Comentarios

Saludos

Muchas gracias por el ejemplo, facil y sencillo me funciono a la primera

Añadir un comentario

(required)

(required)