sql >> Base de Datos >  >> RDS >> Database

¿Cómo hacer que una columna sea única en SQL?

Problema:

Le gustaría hacer que una columna dada sea única en una tabla dada en una base de datos.

Ejemplo:

Nos gustaría hacer que la columna name único en la tabla product . La consulta a continuación presenta una forma de hacerlo.

Solución 1

CREATE TABLE product (
id INT NOT NULL PRIMARY KEY,
name VARCHAR(100) UNIQUE, 
producer VARCHAR(100), 
category VARCHAR(100)
);

Discusión:

En este ejemplo, una columna dada (la columna name ) se hizo único agregando la cláusula ÚNICA al final de la columna de definición (name VARCHAR(100) UNIQUE ). Esta nueva tabla (en nuestro ejemplo:product ) contendrá la columna (en nuestro ejemplo:name ) que almacena valores únicos en filas.

Solución 2:

ALTER TABLE product 
ADD CONSTRAINT UQ_product_name UNIQUE(name);

Discusión:

En este ejemplo, la tabla product ya existe. Queremos modificar esta tabla y agregar una restricción única a la columna name . Esto es posible usando ALTER TABLE cláusula. Primero escribimos ALTER TABLE, luego listamos el nombre de la tabla (en nuestro ejemplo:product ), y luego agregamos la cláusula ADD CONSTRAINT con el nombre de la restricción única (en nuestro ejemplo:UQ_product_name ). A esto le sigue la palabra clave ÚNICA con columna/columnas (en nuestro ejemplo, es columna:name ) entre paréntesis.

También puede crear una restricción única de varias columnas. Así es como:

Solución 3:

ALTER TABLE product 
ADD CONSTRAINT UQ_product_name_producer UNIQUE(name, producer);

Discusión:

En este ejemplo, el producto de la tabla se cambia usando ALTER TABLE cláusula y la cláusula ADD CONSTRAINT con el nombre de la restricción única (en nuestro ejemplo:UQ_product_name_producer ) seguido del UNIQUE palabra clave con la lista de columnas (en nuestro ejemplo hay dos columnas:name y producer ) entre paréntesis.