PostgreSQL proporciona al usuario una restricción ÚNICA que se usa para asegurarse de que los valores almacenados en una columna o un grupo de columnas sean únicos en las filas de una tabla. Cada vez que el usuario inserta una nueva fila, PostgreSQL verifica si el valor ya existe en la tabla si se usan restricciones ÚNICAS. Si descubre que el nuevo valor ya está presente, niega el cambio y emite un error. Un proceso similar se lleva a cabo para actualizar los datos existentes.
Syntax: UNIQUE(column); or variable_name Data Type UNIQUE;
Ahora veamos algunos ejemplos.
Ejemplo 1:
en este ejemplo, crearemos una nueva tabla nombrada person
con una restricción ÚNICA para la email
columna usando el siguiente comando:
CREATE TABLE person ( id serial PRIMARY KEY, first_name VARCHAR (50), last_name VARCHAR (50), email VARCHAR (50) UNIQUE );
Ahora insertaremos algunos datos en la tabla usando el siguiente comando:
INSERT INTO person(first_name, last_name, email) VALUES ( 'Raju', 'Kumar', 'rajukumar@gmail.com' );
Ahora, si intentamos insertar el mismo correo electrónico, PostgreSQL debería generar un error. Así que hagámoslo.
INSERT INTO person(first_name, last_name, email) VALUES ( 'Nikhil', 'Aggarwal', 'rajukumar@gmail.com' );
Producción:
ERROR: duplicate key value violates unique constraint "person_email_key" DETAIL: Key (email)=(rajukumar@gmail.com) already exists.
Ejemplo 2:
PostgreSQL también permite a los usuarios crear una restricción ÚNICA para first_name
usar los siguientes comandos:
CREATE TABLE person ( id SERIAL PRIMARY KEY, first_name VARCHAR (50), last_name VARCHAR (50), email VARCHAR (50), UNIQUE( first_name) );
Ahora insertaremos algunos datos en la tabla usando el siguiente comando:
INSERT INTO person(first_name, last_name, email) VALUES ( 'Raju', 'Kumar', 'rajukumar@gmail.com' );
Ahora, si intentamos insertar el mismo correo electrónico, PostgreSQL debería generar un error. Así que hagámoslo.
INSERT INTO person(first_name, last_name, email) VALUES ( 'Nikhil', 'Aggarwal', 'nikhilagg@gmail.com' ), ( 'Raju', 'Verma', 'rajuverma@gmail.com' );
Esto debería generar un error para el nombre de Raju Verma, ya que Raju Kumar ya existe.
Producción:
ERROR: duplicate key value violates unique constraint "person_first_name_key" DETAIL: Key (first_name)=(Raju) already exists.
Publicación traducida automáticamente
Artículo escrito por RajuKumar19 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA