Restricción de verificación de Oracle

Restricción de verificación de Oracle

La integridad del dominio de los datos o la integridad del dominio es una función de base de datos que garantiza que todos los datos proporcionados en una columna de tabla se adhieran a un conjunto definido de valores válidos. Esta característica minimiza la corrupción de datos y duplica los valores en una base de datos dada.

En este tutorial, aprenderá cómo hacer cumplir la integridad del dominio en su base de datos Oracle utilizando la restricción de verificación.

Restricción de verificación de Oracle

Una restricción de verificación nos permite definir expresiones lógicas que pueden devolver verdaderas o falsas. El motor de la base de datos evaluará todos los datos insertados o actualizados en esa columna para asegurarse de que se adhiera a las reglas de expresión.

Si los datos se adhieren a las reglas de expresión, el motor de la base de datos acepta los datos y permite la declaración de inserción o actualización. De lo contrario, si los datos no cumplen con las leyes, el motor de la base de datos rechaza los datos y niega la operación de inserción o actualización.

Una sola columna puede tener una o más restricciones de verificación, siempre que no entren en conflicto con las otras restricciones de cheques existentes. Además, no se debe asumir el orden de la evaluación de la expresión.

Del mismo modo, puede tener más de una columna con una restricción de verificación.

Reglas de una restricción de verificación en Oracle

Al definir una restricción de verificación en las bases de datos de Oracle, asegúrese:

  1. La restricción de verificación se define en una tabla de Oracle y no en una vista.
  2. La restricción de verificación solo debe referirse a las columnas en esa tabla y no a las tablas extranjeras.
  3. Una restricción de verificación no se puede definir en una subconsulta.
  4. Una expresión de restricción de verificación no puede incluir funciones no deterministas, funciones definidas por el usuario, tablas anidadas, pseudo columnas o atributos anidados.

Oracle Crear restricción de verificación

Se recomienda crear una restricción de verificación al crear una tabla. Esto asegura que todos los datos insertados o actualizados en la tabla coincidan con las reglas de la restricción.

La siguiente es la sintaxis para agregar una restricción de verificación durante la creación de la tabla:

Crear tabla table_name (
columnas,
column_name, data_type check (restrict_expression);
);

Para definir una restricción de verificación, comenzamos con el nombre de la columna en la que deseamos aplicar la restricción-next, el tipo de datos de la columna y la palabra clave de verificación. Finalmente, la expresión de restricción se proporciona dentro de un par de paréntesis.

Aunque no es necesario, a veces es posible que deba asignar un identificador único a la restricción de verificación manualmente; En tal escenario, puede usar la declaración de restricción:

Crear tabla_nam (
columnas
Restricción restrict_name
Cheque (restricción_expresión)
);

Oracle Crear ejemplo de restricción

El siguiente ejemplo crea una tabla de productos con una restricción de verificación que garantiza que el stock siempre esté disponible:

Crear productos de mesa (
Número de Product_ID generado por defecto como identidad,
product_name varchar2 (255) no nulo,
Número de cantidad no check nulo (cantidad> 0),
número de precio,
Clave primaria (Product_ID)
);

En la tabla anterior, definimos la columna de cantidad con una restricción de verificación que garantiza que el valor de datos de esa columna sea mayor que 0.

En tal caso, la restricción asegura que los productos almacenados en la base de datos siempre estén en stock.

Si intentamos agregar un registro donde la cantidad es 0 o un número negativo, Oracle devolverá un error y fallará la solicitud de inserción.

Ejemplo:

Insertar en productos (Product_Name, Cantidad, precio) Valores ('Microsoft Volterra', 0, 599);

La solicitud anterior devuelve un error:

Error SQL [2290] [23000]: ORA-02290: Verifique la restricción (HR.Sys_c007662) violado

Oracle Drop Check Restricción

Una vez que ya no necesite una restricción de verificación en su tabla, puede soltarla de la tabla utilizando el alter

Comando de restricción de caída de la tabla:
ALTER TABLA TABLA_NAME
Soltar restricción de restricción_name;

Oracle Deshabilitar la restricción de verificación

A veces, es posible que desee deshabilitar temporalmente una restricción sin eliminarla de la tabla. Use el comando:

ALTER TABLA TABLA_NAME
Deshabilitar restricción restrict_name;

Oracle Habilitar la restricción de verificación

Para habilitar una restricción de verificación inactiva, ejecute lo siguiente:

ALTER TABLA TABLA_NAME
Habilitar restricción restrict_name;

Conclusión

En este tutorial, descubrió cómo usar la restricción de verificación en las bases de datos de Oracle para permitir que solo los valores que coincidan con una condición específica se agregarán o actualizarán en una tabla determinada.