Supprimer la contrainte NOT NULL dans Postgres

Supprimer La Contrainte Not Null Dans Postgres



Dans les bases de données relationnelles telles que PostgreSQL, les contraintes sont cruciales pour maintenir l'intégrité des données et appliquer des règles spécifiques sur les colonnes de table. L'une de ces contraintes est la contrainte 'NOT NULL'. Dans ce didacticiel, nous allons explorer le concept de la contrainte NOT NULL et fournir un guide étape par étape pour la créer et la supprimer dans PostgreSQL.

Qu'est-ce qu'une contrainte NOT NULL ?

La contrainte NOT NULL garantit qu'une colonne ne peut pas contenir de valeurs nulles qui nécessitent que chaque ligne de la table ait une valeur non nulle pour cette colonne particulière.

Exigences du didacticiel :

Pour suivre les instructions fournies dans cet article, nous supposons que vous avez les exigences suivantes :







  1. Serveur PostgreSQL installé sur votre machine
  2. Connaissances de base en SQL
  3. Autorisation de créer les objets de la table de base de données tels que les contraintes, les fonctions, etc.

Exemple de tableau :

Commençons par configurer un exemple de table avec des colonnes contenant une contrainte non nulle. Prenez l'instruction create table suivante qui configure une table de base qui ressemble à la table wp_users dans WordPress :



CRÉER TABLE wp_users (
ID SÉRIE CLÉ PRIMAIRE,
user_login VARCHAR(60) NON NULL,
user_pass VARCHAR(255) NON NULL,
user_nicename VARCHAR(50) NON NULL,
user_email VARCHAR(100) NON NULL,
user_url VARCHAR(100),
user_registered TIMESTAMP NOT NULL DEFAULT current_timestamp,
user_activation_key VARCHAR(255),
user_status INT NOT NULL DEFAULT 0,
nom_affichage VARCHAR(250) NON NULL
);

À partir de la requête donnée, vous remarquerez que la plupart des colonnes contiennent une contrainte NOT NULL.



La méthode la plus efficace pour créer une contrainte NOT NULL dans une colonne donnée est lors de la création de la table. Cela garantit que toutes les données ajoutées à la table respectent les règles de la contrainte.





Toutefois, si vous ajoutez une contrainte à une table existante, les règles s'appliquent uniquement aux données ajoutées après la contrainte et non aux données existantes. Cela peut entraîner des incohérences, en particulier dans les grandes tables.

Ajouter une contrainte NOT NULL

Dans certains cas, vous souhaiterez peut-être ajouter une contrainte NOT NULL à une table existante. Par exemple, vous pouvez utiliser la commande ALTER TABLE suivie de la clause ALTER COLUMN.



La syntaxe est la suivante :

ALTER TABLE nom_table
ALTER COLUMN nom_colonne SET NOT NULL ;

Remplacez table_name par votre table cible et column_name par la colonne cible à laquelle vous souhaitez appliquer la contrainte.

Vérifier la contrainte

Vous pouvez vérifier que la contrainte existe sur une table donnée à l'aide de la commande '\d' de l'utilitaire PSQL.

\d nom_table

Exemple:

sample_db=# \d wp_users ;

La sortie résultante est la suivante :

Supprimer la contrainte NOT NULL

Vous pouvez également supprimer la contrainte NOT NULL d'une colonne donnée. Pour cela, nous pouvons utiliser les clauses ALTER TABLE et ALTER COLUMN comme suit :

ALTER TABLE nom_table
ALTER COLUMN nom_colonne DROP NOT NULL ;

Par exemple, pour supprimer la contrainte NOT NULL de la colonne user_url de la table wp_users, nous pouvons exécuter la requête suivante :

ALTER TABLE wp_users ALTER COLUMN user_url DROP NOT NULL ;

Cela devrait supprimer la contrainte de la table.

Conclusion

Ce tutoriel a exploré comment nous pouvons travailler avec la contrainte NOT NOLL dans PostgreSQL. Nous avons également exploré comment supprimer une contrainte NOT NULL existante d'une colonne donnée.