En este artículo veremos cómo crear índice único usando CREATE UNIQUE INDEX en PostgreSQL para conseguir que los valores sean únicos en una o varias columnas. Si no conoces lo que es un índice o quieres aprender a crearlo puedes leer este otro artículo.
Tabla de Contenidos
ocultar
Sintaxis
La sintaxis para listar todos los índices es la siguiente:
CREATE UNIQUE INDEX index_name
ON table_name(column_name, [...]);
Lenguaje del código: CSS (css)
- Al crear una clave primaria automáticamente se está creando un índice único.
- Al definir una columna como única el valor no se podrá repetir en diferentes filas.
- Al definir dos o más columnas como únicas, la combinación de valores no se podrá repetir en diferentes filas.
- Cada valor NULL se considera distinto así que puedes tener varios nulos en diferentes filas aunque tengan un índice único.
Ejemplo
En el siguiente ejemplo se crea un índice único por la columna nombre de la tabla empleados:
CREATE UNIQUE INDEX idx_empleados_nombre
ON empleados(nombre);
En el siguiente ejemplo se crea un índice único por la columna nombre de la tabla empleados:
CREATE UNIQUE INDEX idx_empleados_id_dep_nombre
ON empleados(id_departamento, nombre);
Si intentamos realizar un insert con valores repetidos en las columnas del índice nos avisa que existe una restricción que no permite realizar el insert.