Agregue una restricción de verificación a una tabla existente en Oracle

Agregue una restricción de verificación a una tabla existente en Oracle
Una restricción de verificación nos permite definir las expresiones lógicas que pueden devolver verdadero o falso. El motor de la base de datos luego evalúa todos los datos que se insertan o actualizan en esa columna para garantizar 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 Oracle, asegúrese de seguir estas reglas:

  • La restricción de verificación se define en una tabla de Oracle, no una vista.
  • La restricción de verificación solo debe referirse a las columnas en esa tabla y no en tablas extranjeras.
  • Una restricción de verificación no se puede definir en una subconsulta.
  • 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.

Aunque se recomienda utilizar una restricción de verificación durante la creación de la tabla, puede encontrar tales escenarios en los que necesita agregar una restricción de verificación a una tabla existente.

Discutamos cómo podemos hacer esto en una base de datos Oracle.

Agregue una declaración de restricción de verificación

Para agregar una restricción de verificación a una tabla de base de datos existente, utilizamos la declaración de restricción ALTER TBALE ADD. La sintaxis es como se muestra:

ALTER TABLA TABLA_NAME
Agregar restricción restrict_name check (check_constraint_expression);

Agregue una restricción de verificación a la tabla existente

Demostremos cómo agregar una restricción de verificación a una tabla existente. Comencemos creando una tabla de pruebas:

Crear tabla product_stock (
Product_ID Número Clave principal,
Product_Name Varchar2 (255),
número de stock_Quantity,
stock_level varchar2 (255)
);

La consulta anterior crea una tabla para almacenar la información del inventario del producto. A continuación, agregue algunos datos de muestra como se muestra en lo siguiente:

Insertar en Product_stock (Product_id, Product_Name, Stock_Quantity, Stock_Level) Valores (1, 'Product1', 100, 'in');
Insertar en Product_stock (Product_ID, Product_Name, Stock_Quantity, Stock_Level) Valores (2, 'Product2', 13, 'in');
Insertar en Product_stock (Product_id, Product_Name, Stock_Quantity, Stock_Level) Valores (3, 'Product3', 160, 'Out');
Insertar en Product_stock (Product_ID, Product_Name, Stock_Quantity, Stock_Level) Valores (4, 'Product4', 10, 'in');
Insertar en Product_stock (Product_ID, Product_Name, Stock_Quantity, Stock_Level) Valores (5, 'Product5', 320, 'in');

Tabla resultante

Supongamos que queremos asegurarnos de que los datos insertados tengan un stock_cantidad de más de 100. Podemos agregar una restricción de verificación de la siguiente manera:

Alter tabla product_stock
Agregar restricción Validate_stock check (stock_quantity> = 100);

Ahora, si intentamos agregar una fila con el stock_Quantity de menos de 100, recibimos un error de la siguiente manera:

Insertar en Product_stock (product_id, product_name, stock_quantity, stock_level) valores (6, 'Product6', 60, 'Out');

Error

[23000] [2293] ORA-02293: No se puede validar (HR.Validate_stock) - Verifique la restricción violada

Conclusión

ahí tienes! Una forma de agregar una restricción de verificación a una tabla existente en las bases de datos de Oracle. Esperamos que hayas encontrado este artículo útil.