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.