Eliminar la restricción NOT NULL en Postgres

Eliminar La Restriccion Not Null En Postgres



En bases de datos relacionales como PostgreSQL, las restricciones son cruciales para mantener la integridad de los datos y hacer cumplir reglas específicas en las columnas de la tabla. Una de esas restricciones es la restricción 'NO NULO'. En este tutorial, exploraremos el concepto de la restricción NOT NULL y proporcionaremos una guía paso a paso sobre cómo crearla y eliminarla en PostgreSQL.

¿Qué es una restricción NOT NULL?

La restricción NOT NULL garantiza que una columna no puede contener valores nulos, lo que requiere que cada fila de la tabla tenga un valor no nulo para esa columna en particular.

Requisitos de la tutoría:

Para seguir las instrucciones que se proporcionan en esta publicación, asumimos que tiene los siguientes requisitos:







  1. Servidor PostgreSQL instalado en su máquina
  2. Conocimientos básicos de SQL
  3. Permiso para crear los objetos de la tabla de la base de datos, como restricciones, funciones, etc.

Tabla de ejemplo:

Comencemos configurando una tabla de muestra con columnas que contienen una restricción no nula. Tome la siguiente declaración de creación de tabla que configura una tabla básica que se parece a la tabla wp_users en WordPress:



CREAR TABLA wp_users (
CLAVE PRIMARIA DE SERIE DE ID,
user_login VARCHAR(60) NO NULO,
user_pass VARCHAR(255) NO NULO,
user_nicename VARCHAR(50) NO NULO,
user_email VARCHAR(100) NO NULO,
url_usuario VARCHAR(100),
user_registered TIMESTAMP NOT NULL DEFAULT current_timestamp,
clave_activación_usuario VARCHAR(255),
user_status INT NO NULO PREDETERMINADO 0,
display_name VARCHAR(250) NO NULO
);

De la consulta dada, notará que la mayoría de las columnas contienen una restricción NOT NULL.



El método más eficiente para crear una restricción NOT NULL en una columna determinada es durante la creación de la tabla. Esto asegura que todos los datos que se agregan a la tabla se adhieren a las reglas de la restricción.





Sin embargo, si agrega una restricción a una tabla existente, las reglas solo se aplican a los datos que se agregan después de la restricción y no a los datos existentes. Esto puede generar inconsistencias, especialmente en tablas grandes.

Agregue una restricción NOT NULL

En algunos casos, es posible que desee agregar una restricción NOT NULL a una tabla existente. Por ejemplo, puede utilizar el comando ALTER TABLE seguido de la cláusula ALTER COLUMN.



La sintaxis es la siguiente:

ALTER TABLE nombre_tabla
ALTER COLUMN column_name SET NOT NULL;

Reemplace table_name con su tabla de destino y column_name con la columna de destino a la que desea aplicar la restricción.

Verificar la restricción

Puede verificar que la restricción existe en una tabla dada usando el comando '\d' en la utilidad PSQL.

\d nombre_tabla

Ejemplo:

sample_db=# \d wp_users;

La salida resultante es la siguiente:

Eliminar la restricción NOT NULL

También es posible que desee eliminar la restricción NOT NULL de una columna determinada. Para eso, podemos usar las cláusulas ALTER TABLE y ALTER COLUMN de la siguiente manera:

ALTER TABLE nombre_tabla
ALTER COLUMN column_name DROP NOT NULL;

Por ejemplo, para eliminar la restricción NOT NULL de la columna user_url de la tabla wp_users, podemos ejecutar la siguiente consulta:

ALTER TABLE wp_users ALTER COLUMN user_url DROP NOT NULL;

Esto debería eliminar la restricción de la tabla.

Conclusión

Este tutorial exploró cómo podemos trabajar con la restricción NOT NOLL en PostgreSQL. También exploramos cómo eliminar una restricción NOT NULL existente de una columna determinada.