¿Cómo dar una restricción única a una combinación de columnas en Oracle?
Tengo una Tabla con 4 columnas
Cada columna será A,B,C, D
La columna A es la clave principal. La columna B tiene una restricción de nombre único.
Ahora quiero eliminar la restricción única para la columna B y dar una restricción única combinando las columnas B, C y D. Por lo que la tabla permitirá solo una fila con un valor particular en las columnas B,C y D.
¿Cómo puedo dar este tipo de restricción?
Traté de dar la clave única compuesto como :
ALTER TABLE TABLENAME ADD CONSTRAINT CONSTRAINT_NAME UNIQUE (COLUMN_B, COLUMN_C, COLUMN_D)
Pero está verificando si alguna de las restricciones está presente en lugar de verificar la combinación de restricciones de clave única.
3 answers
Crear una clave única en esas columnas
ALTER TABLE YourTable
add CONSTRAINT YourTable_unique UNIQUE (B, C, D);
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-09-22 14:22:05
En primer lugar, debe eliminar una restricción existente utilizando a continuación ALTER Query.
ALTER TABLE table_name
DROP CONSTRAINT myUniqueConstraint;
Ahora, puede crear una restricción UNIQUE usando la palabra clave UNIQUE con la combinación de columnas requeridas.
Por Ejemplo:
ALTER TABLE table_name
ADD CONSTRAINT myUniqueConstraint UNIQUE(B, C, D);
Explicación detallada de la Restricción ÚNICA aquí.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-02-20 06:50:26
ALTER TABLE table_name DROP CONSTRAINT constraint_name;
CREAR UN ÍNDICE ÚNICO constraint_name EN table_name (B,C,D)
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-05-14 06:09:22