Tiempo de lectura:1 Minutos, 42 Segundos

Un autoincremental en PostgreSQL, también conocido como secuencia, es un objeto especial que genera una secuencia de números comenzando desde el valor 1 a partir del ultimo numero que se ha generado. Este autoincremental o secuencia se suele utilizar como la clave primaria de las tablas.

Sintaxis

Para establecer un incremental como clave primaria al crear una tabla usa esta sintaxis:

Si la tabla ya la tienes creada, puedes usar esta sintaxis para crear una columna de tipo incremental y que sea la clave primaria:

¿Cómo funciona?

Cuando se crea un campo de tipo serial PostgreSQL realiza las siguientes acciones:

  1. Crea una secuencia
  2. Agrega la restricción NOT NULL a la columna ya que siempre va tener valor numérico y le indica que por defecto el valor es el siguiente valor de la secuencia.
  3. Se asocia la secuencia a la columna, de este modo, si se borra la columna o la tabla se borrara la secuencia.

Estos tres pasos se realizan automáticamente cuando creas una columna de tipo serial, su sintaxis equivalente es la siguiente:

Tipos de serial

PostgreSQL nos proporciona tres tipos de objetos serial que funcionan de igual manera diferenciándose en el tamaño que soportan:

NombreTamañoRango
SMALLSERIAL2 bytes1 a 32,767
SERIAL4 bytes1 a 2,147,483,647
BIGSERIAL8 bytes1 a 9,223,372,036,854,775,807

Importante

La operación de generar secuencias no es segura para las transacciones. Esto quiere decir que si se utiliza dos veces al mismo tiempo, por ejemplo dos clientes a la vez, se obtendrán resultados diferentes y si uno de ellos realiza un rollback es posible que se generen números no consecutivos.

Ejemplo

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Perfiles en Redes Sociales