En este articulo veremos cómo crear indice ú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 indice o quieres aprender a crearlo puedes leer este otro articulo.
Tabla de Contenidos
ocultar
Sintaxis
La sintaxis para listar todos los indices es la siguiente:
CREATE UNIQUE INDEX index_name ON table_name(column_name, [...]);
- Al crear una clave primaria automaticamente se esta creando un indice unico.
- 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 indice único.
Ejemplo
En el siguiente ejemplo se crea un indice ú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 indice ú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 indice nos avisa que existe una restricción que no permite realizar el insert.
