Oracle
 sql >> Base de données >  >> RDS >> Oracle

Comment puis-je supprimer une contrainte non nulle dans Oracle lorsque je ne connais pas le nom de la contrainte ?

alter table MYTABLE modify (MYCOLUMN null);

Dans Oracle, les contraintes not null sont créées automatiquement lorsque not null est spécifié pour une colonne. De même, ils sont supprimés automatiquement lorsque la colonne est modifiée pour autoriser les valeurs nulles.

Clarification de la question révisée :Cette solution ne s'applique qu'aux contraintes créées pour les colonnes "not null". Si vous spécifiez "Clé primaire" ou une contrainte de vérification dans la définition de colonne sans la nommer, vous vous retrouverez avec un nom généré par le système pour la contrainte (et l'index, pour la clé primaire). Dans ces cas, vous devez connaître le nom pour le supprimer. Le meilleur conseil est d'éviter le scénario en veillant à spécifier un nom pour toutes les contraintes autres que "not null". Si vous vous trouvez dans la situation où vous devez supprimer l'une de ces contraintes de manière générique, vous devrez probablement recourir à PL/SQL et aux tables de définition de données.