PostgreSQL – Restricción de COMPROBACIÓN

En PostgreSQL , la restricción CHECK se usa principalmente para especificar si un valor en una columna necesariamente cumple con un requisito específico. La restricción CHECK utiliza una expresión booleana para evaluar los valores antes de realizar una operación de inserción o actualización en la columna. Si los valores pasan la verificación, PostgreSQL permite la inserción o actualización de esos valores en la columna. Se utiliza principalmente al crear una tabla.

Syntax: variable_name Data-type CHECK(condition);

Ahora pasemos a un ejemplo para una mejor comprensión.

Ejemplo:
Primero crearemos una employee tabla con controles específicos de la siguiente manera:

CREATE TABLE employees (
    id serial PRIMARY KEY,
    first_name VARCHAR (50),
    last_name VARCHAR (50),
    birth_date DATE CHECK (birth_date > '1900-01-01'),
    joined_date DATE CHECK (joined_date > birth_date),
    salary numeric CHECK(salary > 0)
);

Ahora primero insertaremos datos que satisfagan las restricciones anteriores usando el siguiente comando:

INSERT INTO employees (
    first_name,
    last_name,
    birth_date,
    joined_date,
    salary
)
VALUES
    (
        'Raju',
        'Kumar',
        '1994-01-01',
        '2015-07-01',
         100000
    );

Ahora, si verificamos si la inserción de datos fue exitosa usando el siguiente comando:

SELECT * FROM employee;

Podemos ver los datos insertados de la siguiente manera:

Ahora intentaremos insertar datos que no pasen la verificación de la siguiente manera:

INSERT INTO employees (
    first_name,
    last_name,
    birth_date,
    joined_date,
    salary
)
VALUES
    (
        'Nikhil',
        'Aggarwal',
        '1972-01-01',
        '2015-07-01',
        - 100000
    );

Producción:

ERROR:  new row for relation "employees" violates check constraint "employees_salary_check"
DETAIL:  Failing row contains (2, Nikhil, Aggarwal, 1972-01-01, 2015-07-01, -100000)

Como podemos ver el comportamiento es exactamente lo que esperábamos.

Publicación traducida automáticamente

Artículo escrito por RajuKumar19 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *